我正在开发一个正在运行的守护进程,我现在无法创建任何新进程(即,我无法启动一个新进程来杀死其他流氓进程)。所以,我需要能够从远程机器杀死进程。如何在没有管理员权限的情况下远程“杀死”?如果我不能以普通用户的身份从远程机器杀死我自己的进程,请告诉我,以便我可以将其标记为正确答案。
根据我的理解killall name,它查找名称为名称的所有进程。所以killall killall应该查找并杀死自己,所以我预计没有输出。所以我很好奇:
为什么它看起来像这样:
nathan:~ max$ killall killall
No matching processes belonging to you were found
nathan:~ max$
Run Code Online (Sandbox Code Playgroud)
我在当前的 OS X 上。
我试图杀死我所有的 mysqld 进程。但仍然是一个,为什么?
javier@javier-mbp:~$ ps aux | grep mysqld
root 913 0.0 0.0 4220 704 ? S 16:11 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/javier-mbp.pid
mysql 1408 0.1 2.0 609900 84480 ? Sl 16:11 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/usr/local/mysql/data/javier-mbp.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
javier 1995 0.0 0.0 13128 1056 pts/0 S+ 16:12 0:00 grep --color=auto mysqld
javier@javier-mbp:~$ pkill mysqld
pkill: 913 - Operation not permitted
pkill: 1408 - Operation not permitted
javier@javier-mbp:~$ sudo pkill mysqld
[sudo] password for javier:
javier@javier-mbp:~$ ps …Run Code Online (Sandbox Code Playgroud) 我尝试sudo rm /bin/kill在 Ubuntu VM 中运行以删除kill命令。运行which kill没有输出,好像文件不存在但运行kill完美?
为什么kill在明显删除可执行文件后仍然有效?
在一台服务器(我的开发桌面)上,我可以在kill没有 sudo 的情况下执行命令,但在另一台服务器上,我会得到kill: kill 1 failed: operation not permitted.
我假设该kill命令将执行/usr/bin/kill。
当我在两台服务器上检查文件的权限时,它的权限部分显示为相同lrwxrwxrwx 1 root root,这意味着每个用户都具有该文件的读、写和执行权限。那为什么我需要sudo在其他服务器上做呢?我很好奇两台服务器之间的哪一部分产生了这种差异。