我在我的一个(Linux2.6)远程系统上运行了一个进程,导致系统处于糟糕的状态(要么占用CPU,消耗太多内存,要么耗尽其他系统资源),从而使其无法使用。我不能再通过ssh (我得到“写入失败:管道中断”)或telnet (“连接被拒绝”)登录。
我能够ping通系统。此外,好奇的是,我能够通过FTP登录,包括获取,上传和删除文件的能力。虽然我有超级用户的密码,但我不能通过FTP以超级用户身份登录,因为系统禁用了该功能。我只能在我的普通用户帐户下登录。
我知道违规进程的pid。
这里是我的问题:考虑到上述信息,有没有一种方法可以在运行该进程的同一用户下通过FTP登录来杀死该流氓进程?我不需要它成为一个优雅的杀戮。例如,删除/var/proc/中会导致进程崩溃的内容(尽管我尝试过,但删除失败)
-bb
发布于 2014-02-27 13:46:25
我不能发表评论,因为我是新来的,但由于你没有把这些信息放在你的问题中,如果可能的话,这里有一些你应该尝试的东西:
听起来像是在chroot环境中保护了FTP,这是一件好事。所以,你很可能无法通过你的入狱帐户。
根据我的经验,当CPU过高而我的SSH连接无法运行时,它确实有机会恢复或为您提供足够的资源,以便建立新的连接。考虑到这一点,您可以编写一个小脚本(SHELL脚本),该脚本每分钟或每隔几分钟尝试为您登录到该服务器,直到成功,如果成功,就让它终止进程,因为您知道PID。SSH命令(客户端)允许您传递命令。如果连接成功,并且确实成功地发送了kill命令,则说明您的客户端计算机捕获了退出状态,并向您的电话发送警报,让您知道它是否执行了您要求的操作。
发布于 2014-02-27 14:05:04
如果你有/etc/cron.d/的写权限,你可以放入一个cronjob,它可以作为你想要的任何用户运行任何你想要的东西。
https://stackoverflow.com/questions/22021025
复制相似问题