Как получить PID недавно запущенного процесса в Bash [закрыто]

У меня есть файл сценария bash, который содержит следующий код script.sh

./xxx_program arguments &
PID=$!
echo $PID
kill -INT $PID

. Я пытаюсь запустить программу " xxx_program ", а затем сохраните его PID в переменной $ PID . Но вместо этого я продолжаю получать PID самого « bash » вместо открываемой мной программы, в результате чего kill -INT $ PID просто закрывает script.sh ], пока xxx_program продолжает работать. Обратите внимание, что открывается xxx_program , но я просто получаю неправильный PID.

Я хотел бы знать, есть ли способ получить PID xxx_program? Заранее благодарим

1
задан 13 June 2017 в 16:43

2 ответа

Существуют различные пути:

  1. Позволяют сценарию записать свой pid сам. Включайте строку echo $ > /tmp/my.pid в Ваш сценарий.
  2. Использование pidof script_name
  3. Использование ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
3
ответ дан 3 December 2019 в 06:53

Вы могли использовать

pidof xxx_program 

, если это - название процесса. (должно быть полное имя процесса, как оно было вызвано, включая любые опции или пути командной строки)

1
ответ дан 3 December 2019 в 06:53

Другие вопросы по тегам:

Похожие вопросы: