Кто-то установил сервер и у него есть FFMPEG, который пытается закодировать видео, и он фактически убил веб-сервер. Я не настраивал его, но у меня есть доступ к sudo, и мне нужно убить FFMPEG, чтобы веб-сервер снова начал отвечать. Как я могу это сделать? Спасибо!
Это сервер Ubuntu 11.10 со стандартным стеком LAMP.
В Linux вы можете использовать sudo killall ffmpeg
чтобы убить каждый процесс под названием "ffmpeg" или ps -ef | grep ffmpeg
чтобы получить идентификаторы процессов, а затем sudo kill <PID>
убить каждого по отдельности.
Если они не умрут, sudo kill -9 <PID>
прекратит их.
Если вы не хотите убивать ffmpeg, вы можете приостановить запущенный процесс с помощью sudo kill -s SIGSTOP <PID>
и начать их снова с sudo kill -s SIGCONT <PID>
.
Остерегайтесь: в Solaris, killall
не принимает аргументов. Он просто все убивает.
Не совсем то, о чем вы спрашиваете, но если важно, чтобы задание ffmpeg завершилось, этого может быть достаточно, чтобы изменить его, чтобы дать ему более низкий приоритет, чем процессам веб-сервера.
Запустите что-то вроде ps auxw |grep ffmpeg
чтобы получить PID процесса ffmpeg, затем выполните sudo renice -n 19 PID
для изменения приоритета процесса, для PID процесса из первой команды.
Эта стратегия может работать немного лучше, чем полное уничтожение ffmpeg. Это даст вам передышку для веб-процессов, но позволит завершить исходную работу. Кроме того, если есть какая-то запущенная очередь заданий, она может снова запустить ffmpeg после того, как обнаружит, что исходное задание не было выполнено успешно.
ps -ef | grep ffmpeg
Обратите внимание на PID различных процессов ffmpeg, затем для каждого PID
kill -9 PID