2016-02-09 3 views
0

У меня есть малина Pi, работающая на Raspbian, контролирующая систему домашней автоматизации как часть проекта для колледжа. Чтобы управлять этим, я использую веб-приложение ASP.NET для запуска SSH-команд в Pi для запуска различных приложений Python. Мне нужно, чтобы запустить другое приложение поверх SSH, прежде чем запускать новый.Terminate Running Python Apps

Например:

a.py и b.py работающих под управлением

пользователь выбирает c.py из веб-приложения

a.py должен быть остановлен перед запуском c.py оставив б .py и c.py.

Благодаря

Jake

ответ

0

Если вы хотите убить каждый запущенный экземпляр p ython:

$ kill `pidof python` 

Если вы хотите, чтобы убить каждого запущенного экземпляра конкретного питона сценария:

$ kill `pidof -x myscript.py` 
or 
$ pkill myscript.py 
or 
$ killall glances 

Это вообще не рекомендуется, чтобы отправить SIGKILL на запущенную программу (kill -9). SIGTERM обычно достаточен, если программа не замерзает. Все вышеперечисленные команды отправляют SIGTERM.

0

найти PID (Process ID) вашего питона сценария с помощью команды (должен быть второй столбец)

ps -ef | grep python 
kill <PID found previously> 
kill -9 <PID found previously> 

Если программа все еще работает, то это означает, что вы используете неправильный PID Ничто не может остановить команду kill -9 :-)

+0

'pkill -9 python'? –

+0

Спасибо, будет ли PID оставаться неизменным каждый раз? Если нет, что бы лучше всего было сделать это программно? –

+0

@ JoranBeasley Я отредактировал заголовок моего вопроса, чтобы лучше отразить то, что мне нужно. Эта команда выглядит так, что это закончит выполнение каждого скрипта python. –