У меня есть файл сценария 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? Заранее благодарим
Существуют различные пути:
echo $ > /tmp/my.pid
в Ваш сценарий. pidof script_name
ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
Вы могли использовать
pidof xxx_program
, если это - название процесса. (должно быть полное имя процесса, как оно было вызвано, включая любые опции или пути командной строки)