如何杀死我自己的非root帐户运行的所有进程?
我有一些旋转的smbd进程,我从我的windows机器引起的,所以我telnetted到linux服务器,我想杀死这些旋转的进程。 我没有权限重新启动服务或重新启动机器。
如何杀死我自己的非root帐户运行的所有进程?
我有一些旋转的smbd进程,我从我的windows机器引起的,所以我telnetted到linux服务器,我想杀死这些旋转的进程。 我没有权限重新启动服务或重新启动机器。
要杀死您有权杀死的所有进程,只需运行命令
kill -15 -1
或 kill -9 -1
根据所需的行为(使用 man kill
详情请参阅)
要杀死一个特定的进程,比如firefox,只需运行
pkill firefox
或 killall firefox
取决于你想要的行为: 什么's之间的区别'killall'和'pkill'?
如果您想查看正在运行的进程,请使用该命令
ps -ef
如果您想通过用户bob查找所有进程,这可能会有所帮助
pgrep -l -u bob
或
ps -ef | grep bob
使用方法 sudo kill <pid>
或 sudo killall <process-name>
您可以使用
ps -ax | grep application name
如果您在终端中搜索firefox类型如下 ps -ax | grep firefox
,它显示相应应用程序的进程id。 您可以通过以下方式停止该应用程序 kill
命令如果进程id=1317,
kill -9 1317
让我们尝试更多的东西:
sudo apt-get install htop
该 top
command是查看系统资源使用情况并查看占用最多系统资源的进程的传统方式。 顶部显示一个进程列表,其中使用最多CPU的进程位于顶部。
htop
以更易于理解的布局显示相同的信息。 它还允许您使用箭头键选择进程并执行操作,例如杀死它们或更改其优先级 F 钥匙。
尝试杀死用户拥有的所有进程 username
,跑:
pkill -U username
我会把你的问题分成两部分:
1)如何找到由我启动的进程? 运行这个:
ps -u `whoami`
该 whoami
是为了以防万一你不知道你正在使用的帐户的名称,否则只需键入帐户的名称没有反引号。
这将列出您的帐户可以删除的所有进程。
2)的 ps
命令将列出进程号,TTY,时间和CMD。 进程ID是第一列。 使用该数字来杀死进程。 在杀死过程时要小心。 如果你杀错了,你可能会弄坏一些东西process.To 杀死一个你将使用的进程 kill
命令,其向进程发送信号。 信号指示什么过程 应该 做。 例如,发送一个 -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
你想杀了 firefox
通过它的进程id进行处理,然后你会这样做:
kill -1 7667
然后你会重新运行同样的 ps
命令并检查进程是否仍在运行。 如果它还在运行,那么做一个
kill -2 7667
努力工作到 -9
.
要终止帐户启动的所有进程,请输入 kill <level> -1
. 和以前一样:工作到 -9
.
如果你知道这个过程的名字,你可以简单地去 killall <processname>
,这就是你要杀的东西。 例如: killall fish
(鱼,在这个意义上,是友好的互动外壳)。
文件 killall
可以在这里找到: http://manpages.ubuntu.com/manpages/hardy/man1/killall.1.html
我写了一个我写的小脚本来杀死(在我的情况下)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" "`
这样做的是管道所有的过程 justin
正在运行(可以更改为任何用户名) grep
其中寻找 skype
(这可以更改为您的进程),然后将该行管道到 cut
然后只读取PID,最后在 kill
命令杀死它。
...Linux中的所有进程都响应信号。 信号是告诉程序终止或修改其行为的操作系统级方式。
如何通过PID发送进程信号
将信号传递给程序的最常见方法是使用kill命令。
正如您所料,此实用程序的默认功能是尝试终止进程:
kill PID_of_target_process
这将术语信号发送到过程。 术语信号告诉进程请终止。 这允许程序执行清理操作并顺利退出。
如果程序行为不端,并且在给定TERM信号时没有退出,我们可以通过传递KILL信号来升级信号:
kill -KILL PID_of_target_process
这是不发送到程序的特殊信号。
相反,它是给操作系统内核,它关闭进程。 这用于绕过忽略发送给它们的信号的程序。..