В некоторых случаях может понадобится узнать ID процесса запущенного Bash скрипта, например создать уникальный PID файл или исключить процесс Bash скрипта при проверке списка процессов.
В Bash PID скрипта хранится в переменной $$, доступной только для чтения. Пример:
1 2 | #!/bin/bash echo "PID: $$" |
Вывод скрипта:
1 | PID: 662818 |
Помимо $$, bash экспортирует несколько других переменных, доступных только для чтения. Например, PPID хранит идентификатор родительского процесса (т. е. основной оболочки). UID идентификатор текущего пользователя, выполняющего скрипт.
1 2 3 4 | #!/bin/bash echo "PID: $$" echo "PPID: $PPID" echo "UID: $UID" |
Данный скрипт выведет следующую информацию
1 2 3 | PID: 663504 PPID: 661675 UID: 1014 |
В примерах выше PID будет меняться каждый раз при вызове скрипта, при этом PPID будет оставаться не именным.