有人设置了服务器,并让 FFMPEG 尝试对视频进行编码,但实际上却杀死了 Web 服务器。我没有设置它,但有 sudo 访问权限,需要杀死 FFMPEG,以便 Web 服务器再次开始响应。我该怎么做?谢谢!
它是一台带有标准 LAMP 堆栈的 Ubuntu 11.10 服务器。
答案1
在 Linux 上,您可以用来sudo killall ffmpeg
终止每个名为“ffmpeg”的进程,或者ps -ef | grep ffmpeg
获取进程 ID,然后sudo kill <PID>
单独终止每个进程。
如果他们没死,sudo kill -9 <PID>
就会处决他们。
如果您不想终止 ffmpeg,您可以使用 暂停正在运行的进程,sudo kill -s SIGSTOP <PID>
然后使用 重新启动它们sudo kill -s SIGCONT <PID>
。
注意:在 Solaris 上,killall
不接受参数。它会杀死所有内容。
答案2
这不完全是您所要求的,但是如果完成 ffmpeg 作业非常重要,那么重新调整它的优先级使其低于 Web 服务器进程可能就足够了。
运行类似的命令ps auxw |grep ffmpeg
来获取 ffmpeg 进程的 PID,然后发出命令sudo renice -n 19 PID
来更改进程优先级,以获取第一个命令中的进程 PID。
这种策略可能比直接关闭 ffmpeg 效果更好。它会为 Web 进程提供喘息空间,但允许原始作业完成。此外,如果有某种作业队列正在运行,它可能会在看到原始作业未成功完成后重新启动 ffmpeg。
答案3
ps -ef | grep ffmpeg
记下不同 ffmpeg 进程的 PID,然后针对每个 PID
kill -9 PID