Я запускаю различные программы на Unix в фоновом режиме. Каждая программа выводится в отдельный файл, например:

python eventsim.py > logfile &
python eventsim.py > log1 &

Теперь скажите, что я хочу убить процесс, который выводится в файл log1, но я больше не помню, каков его pid. Есть ли способ получить эту информацию?

4 ответа4

5

Проверьте, что команда заданий напечатает текущие задания.

jobs

После того, как вы получите идентификатор процесса, вы можете использовать fg или kill.

Вы также можете использовать комбинацию ps и grep или pgrep (если есть):

pgrep eventsim.py

Примечание. На самом деле это не связано с программированием, и на него лучше ответить по адресу https://superuser.com/.

2

Вы должны увидеть полную командную строку, используя ps(1):

ps auxwww | grep '[l]og1'

PID будет во втором столбце.

1

попробуйте эту команду:

ps aux | grep 'eventsim.py' | awk '{print $2,$11,$12}'

выход:

1595 python eventsim.py

1595 номер пид

и сейчас:

kill <pid-number>

и процесс прекратится

0

Я нашел способ: kill -STOP [pid] предоставляет подтверждение, которое показывает, что я ищу. Спасибо за помощь!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .