Как запустить программу и узнать ее PID в Linux? - PullRequest
5 голосов
/ 27 марта 2012

Как запустить программу и узнать ее PID в Linux?

Если у меня есть несколько работающих друг за другом оболочек, будут ли у них все отдельные PID?

Ответы [ 3 ]

17 голосов
/ 27 марта 2012

Вики Грега на помощь:

  • $! - PID последнего фонового процесса.
  • kill -0 $PID проверяет, является ли $PIDвсе еще работает.Используйте это только для процессов, запущенных текущим процессом или его потомками, в противном случае PID мог бы быть переработан.
  • wait ожидает выхода всех детей, прежде чем продолжить.

Фактически, просто прочитайте ссылку - это все там (и даже больше).

$$ - это PID текущей оболочки .

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

3 голосов
/ 27 марта 2012

1) Для этого есть переменная, часто $$:

edd@max:~$ echo $$                  # shell itself
20559
edd@max:~$ bash -c 'echo $$'        # new shell with different PID
19284
edd@max:~$ bash -c 'echo $$'        # dito
19382
edd@max:~$ 

2) Да, да, ОС / ядро ​​сделает это за вас.

0 голосов
/ 29 марта 2012

команда top в linux (Ubuntu) показывает использование памяти всеми запущенными программами в linux с их pid.Kill pid может убить процесс.

...