基本上我需要能够扫描进程树并找到与某个名称匹配并开始运行一个多星期的进程。一旦我拥有它们,我就需要杀死它们。所有进程仍然被系统视为处于运行状态,只是不使用任何系统时间。他们通常也会永远处于这种状态。
理想情况下,我想要类似的东西,但对于流程。
系统是 Debian linux,这将由 cron 编写和运行,所以我对一些大但可以理解的东西没有真正的问题。
还有其他开发人员以 root 身份登录,我想踢出去。
所以我发出
pkill -KILL -u root
Run Code Online (Sandbox Code Playgroud)
然后我意识到我可能杀死了各种root进程。
我是否损坏了我的系统?我现在无法通过 SSH 访问它。
更新:Web 服务器仍在运行。但是我现在无法通过 SSH 连接。我不知道我做了什么。
我正在尝试编写一个强大的 bash 脚本,并在其中创建一个后台进程。在脚本的最后,我想杀死它。我有它的PID。
我在想这样的事情
while [[ ps ef $PID ]] ; do
kill $PID
sleep 0.5
done
Run Code Online (Sandbox Code Playgroud)
有什么更好的建议吗?这种方法有什么可能的问题吗?
假设我们有一个组 ( dev),其中有许多用户和一个共享开发目录,该目录g+rwx对所有包含的文件具有权限。此设置是否足以让任何dev用户都可以终止任何其他dev用户启动的进程(假设该进程是使用默认权限启动的)?
例如,假设我们有/opt/devfolder/bin/foouser1(在 group 中dev)拥有的文件,其组 IDdev和权限为 0770。如果 user2(在 group 中dev)从他的 shell 启动一个“foo”的实例,user3(在 group 中dev)可以杀死它吗?
[编辑]
如果没有,我们如何使用sudo或其他一些标准的 UNIX 实用程序来实现这一点?
我发现自己必须定期发送kill -STOP 一百万个进程,但它们都来自同一个父进程。有没有更聪明的方法来做到这一点?
我有一个烦人的僵尸进程,它被 init 采用,它不会消失。我读过有一种方法可以创建一个虚拟进程,将僵尸附加为该新进程的子进程,然后杀死它,将其从进程表中删除。
我将如何做到这一点,准确地说?
是的,我已经阅读了大部分内容:
僵尸进程已经死了,所以它不能被杀死。
或者
你应该重启你的系统
和
僵尸进程不使用任何资源,您应该让它们使用
不幸的是,许多程序检查进程表以查看实例是否已经在运行,如果进程表中有条目,则将拒绝启动新的实例。
每次我的 SSHFS 连接断开时重新启动,带着 Sublime,有点傻。
我想 kill -9 仍然只是向进程发送信号。如果该过程表现不佳,我认为 kill -9 将无效。确实,今天我第一次看到 kill -9 在发送到卡住的 ruby 进程时没有任何效果。所以这是我的问题:是否有更严厉的方法来终止进程?
我尝试删除文件。最相关的答案可以在这里找到,但我没有找到运气。这是原来的问题:
maxgitt@mgpc:~$ sudo rm -rf /var/lib/docker/
rm: cannot remove '/var/lib/docker/aufs': Device or resource busy
Run Code Online (Sandbox Code Playgroud)
为了找到该过程,我尝试了以下操作:
maxgitt@mgpc:~$ sudo lsof +D /var/lib/docker/
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
Run Code Online (Sandbox Code Playgroud)
所以我尝试在上述答案的评论中找到但一无所获,
maxgitt@mgpc:~$ /sbin/fuser -m /var/lib/docker/
bash: /sbin/fuser: No such file or directory
Run Code Online (Sandbox Code Playgroud)
连ps进程都找不到
maxgitt@mgpc:~$ ps aux | grep docker
maxgitt 5349 0.0 0.0 14224 1024 pts/18 S+ 15:21 0:00 grep --color=auto docker
maxgitt@mgpc:~$
Run Code Online (Sandbox Code Playgroud)
关于如何终止这个神秘过程的任何帮助都会很棒。
假设我有几个用户同时运行“ruby”进程。如何编写一个 shell 命令来终止一个特定用户的“ruby”进程?(我使用的是 CentOS 5.5。)
我在 NFS 挂载上运行了一些巨大的文件传输。挂载点所在的服务器不小心重启了,现在启动这些大传输的服务器似乎被它们卡住了。
如果我运行top,我会看到以下内容:

我尝试的第一件事是kill使用 -1 -2 -9 和 -15 标志以及上面显示的每个进程 ID 依次运行。这允许我继续,但没有终止进程。我尝试的下一件事是重新启动服务器,但既没有reboot也没有shutdown -r now工作。当我运行时shutdown -r now,发送了标准广播消息,但服务器没有重新启动。我通过查看服务器正常运行时间(25 天)确认了这一点。
所以现在我有点卡住了。我以 root 身份运行这些命令。
编辑:这是另一个有趣的花絮:

最重要的是,我没有看到任何其他进程正在使用超过百分之一的内存或超过 5% 的 CPU。
编辑2:输出 /var/log/messages
