Как получить 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? Спасибо заранее

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

6 ответов

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

Пусть сценарий записывает сам pid. Включите строку echo $$ > /tmp/my.pid в свой скрипт. Использовать pidof script_name Использовать ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
3
ответ дан 22 May 2018 в 21:35

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

Пусть сценарий записывает сам pid. Включите строку echo $$ > /tmp/my.pid в свой скрипт. Использовать pidof script_name Использовать ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
3
ответ дан 18 July 2018 в 11:43

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

Пусть сценарий записывает сам pid. Включите строку echo $$ > /tmp/my.pid в свой скрипт. Использовать pidof script_name Использовать ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
3
ответ дан 24 July 2018 в 19:50

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

pidof xxx_program 

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

1
ответ дан 22 May 2018 в 21:35
  • 1
    Большое спасибо, это отлично поработало. & Quot; pidof & Quot; определенно лучший вариант по сравнению с тем, что я делал – Yuran 14 June 2017 в 06:52

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

pidof xxx_program

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

1
ответ дан 18 July 2018 в 11:43

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

pidof xxx_program

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

1
ответ дан 24 July 2018 в 19:50
  • 1
    Большое спасибо, это отлично поработало. & Quot; pidof & Quot; определенно лучший вариант по сравнению с тем, что я делал – Yuran 14 June 2017 в 06:52

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

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