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