如何在Ubuntu中杀死进程?
如何杀死我自己的非root帐户运行的所有进程?
我有一些旋转smbd进程,我从我的Windows机器,所以我telnet到Linux服务器,我想杀死那些旋转过程。 我无权重启服务或重启机器。
要杀死您有权杀死的所有进程,只需运行该命令即可
kill -15 -1
或kill -9 -1
具体取决于所需的行为(详情请使用man kill
)
要杀死一个特定的进程,比如firefox,只需运行即可
pkill firefox
或killall firefox
取决于你想要的行为: ‘killall’和’pkill’之间有什么区别?
如果要查看正在运行的进程,请使用该命令
ps -ef
如果您想通过用户bob查找所有进程,这可能会有所帮助
pgrep -l -u bob
要么
ps -ef | grep bob
使用sudo kill
或sudo killall
让我们尝试更多:
sudo apt-get install htop
top
命令是查看系统资源使用情况的传统方法,并查看占用最多系统资源的进程。 Top显示进程列表,其中顶部使用最多的CPU。
htop
以更易于理解的布局显示相同的信息。 它还允许您使用箭头键选择进程并使用F键执行操作,例如终止或更改其优先级。
您可以使用
ps -ax | grep application name
如果您在终端中搜索firefox类型,如ps -ax | grep firefox
ps -ax | grep firefox
,它显示相应应用程序的进程ID。 如果进程id = 1317,你可以通过kill
命令停止该应用程序,
kill -9 1317
我会用xkill
。 在终端中输入xkill
并在窗口中单击,或输入xkill
和进程ID,它将被终止。
在xkill
上找到有关xkill
更多信息。
要尝试终止用户用户username
拥有的所有进程,请运行:
pkill -U username
我将你的问题分成两部分:
1)如何找到我开始的流程? 运行这个:
ps -u `whoami`
whoami
是为了防止您不知道您正在使用的帐户的名称,否则只需键入没有后引号的帐户的名称。
这将列出您的帐户可以删除的所有流程。
2) ps
命令将列出进程号,TTY,时间和CMD。 进程ID是第一列。 使用该数字来终止进程。 在杀死进程时要小心。 如果你杀了错误的进程,你可能会破坏某些东西。 要终止进程,您将使用kill
命令,该命令向进程发送SIGNAL。 信号表明过程应该做什么。 例如,向进程发送-1
将要求它重新加载配置文件; 发送-2
相当于在该进程上按Control + C; -9
将导致内核放弃该进程,而不将其传递给进程。
假设ps -u whoami
返回了类似的东西
PID TTY TIME CMD 4333 pts/1 00:00:00 fish 4335 ? 00:00:00 fishd 4816 ? 00:00:00 intellij 4868 ? 00:50:42 java 4939 ? 00:00:19 fsnotifier64 7667 ? 02:49:08 firefox 7698 ? 00:00:00 unity-webapps-s
你想通过它的进程id杀死firefox
进程,然后你会做:
kill -1 7667
然后你重新运行相同的ps
命令并检查进程是否仍在运行。 如果它仍在运行,那么做一个
kill -2 7667
努力工作到-9
。
要终止您帐户启动的所有进程,请输入kill
。 和以前一样:按照你的方式工作到-9
。
如果您知道该过程的名称,您可以简单地转到killall
,这就是您要杀死的内容。 例如: killall fish
(在这个意义上,鱼是友好交互式SHell)。
有关killall
文档可以在这里找到: http : //manpages.ubuntu.com/manpages/hardy/man1/killall.1.html
… Linux中的所有进程都响应信号。 信号是告诉程序终止或修改其行为的os级方式。
如何通过PID发送进程信号
将信号传递给程序的最常用方法是使用kill命令。
正如您所料,此实用程序的默认function是尝试终止进程:
kill PID_of_target_process
这会将TERM信号发送给进程。 TERM信号告诉进程请终止。 这允许程序执行清理操作并顺利退出。
如果程序行为不正常并且在给出TERM信号时没有退出,我们可以通过传递KILL信号来升级信号:
kill -KILL PID_of_target_process
这是一个未发送到程序的特殊信号。
相反,它被赋予操作系统内核,从而关闭进程。 这用于绕过忽略发送给他们的信号的程序…
我写了一个小脚本我写的杀死(在我的情况下)Skype:
kill -s 9 `ps aux | grep skype | head -n 1 | cut -f4 -d" "`
但是我发现,尽管当时有效,但第二天它没有用,因为pid是不同的长度,并且空间的数量是不同的
然后我遇到了这个网站并尝试过
pgrep -l -u justin
它可以方便地输出格式的进程
[pid] [name]
所以我将脚本中的代码调整为:
kill -s 9 `pgrep -l -u justin | grep skype | cut -f1 -d" "`
这样做的是管道正在运行的所有进程(可以更改为任何用户名)到grep
查找skype
(这可以更改为您的进程)然后管道该行进行cut
然后只读取PID最后在kill
命令中使用该PID来杀死它。
使用此应用程序,您可以查看程序列表
安装htop
sudo apt-get install htop
查看进程和终止进程您可以安装它并简单地删除
我使用以下过程来杀死Ubuntu中的进程::
第1步:使用grep获取进程的pid,或者也可以使用-C也::
ps aux | -C 'filename'
要么
ps -ef | -C 'filename'
要么
ps aux | grep 'filename'
要么
ps -ef | grep 'filename'
第2步:记下pid号码。
第3步:使用’kill’命令和pid号一起使用:
kill pidnumber
可以设置Ctrl + Alt + Delete,以便您可以访问任务管理器,只需点击几下就可以轻松杀死进程,对我来说,记住可能有损坏的命令的要求更少:
http://ubuntuhandbook.org/index.php/2013/07/use-ctrl-alt-del-task-manager-ubuntu/
这是我写的一个简单的python脚本,killProcess.py,它将接受任何东西作为输入并杀死它。
我写了这个脚本,因为我有很多python或节点进程,我想单独和编程地杀死。 我不能使用“killall python”,因为它将停止我需要继续运行的进程。
请将文件命名为“killProcess.py”,然后添加要停止的脚本的名称。 例如:python killProcess.py runnablePoller.py将终止runnablePoller.py文件
import os; import sys; for arg in sys.argv: if(arg!="killProcess.py"): process=arg; print(process); processes =os.popen("ps -ef | grep "+process).read(); processes=processes.split("\n"); processes=processes[0].split(" "); #print(processes); for p in processes: try: pid=int(p); print(pid); break; except: continue; os.system("kill "+str(pid));