Как узнать PID скрипта
Когда вы запускаете скрипт в оболочке, например Bash запускается процесс известный как подоболочка и выполняет последовательно все команды скрипта.
В некоторых случаях можно узнать ID процесса PID подоболочки в котором выполняется ваш скрипт. PID может быть использован в различных ситуациях, например вы хотите создать уникальный временный файл в папке /tmp/, тогда можно включить PID скрипта в имя файла. Или если скрипту нужно анализировать список запущенных процессов он сможет пропустить процесс своей подоболочки.
В оболочке Bash PID процесса подоболочки храниться в специальной переменной $$. Эта переменная доступна только для чтения, поэтому вы не сможете ее редактировать. Теперь посмотрим пример вывода PID:
#!/bin/bash
echo "PID этого скрипта: $$"
После запуска данного скрипта мы увидим:
PID этого скрипта: 7845
Кроме $$, в оболочке Bash есть еще несколько доступных только для чтения переменных. Например в переменной PPID хранится PID родительского процесса, то есть PID оболочки Bash. Переменная UID хранит ид пользвоателя от которого запущен скрипт. Например выполнив:
#!/bin/bash
echo "PID этого скрипта: $$"
echo "PID оболочки: $PPID"
echo "Скрипт запущен от пользователя: $UID"
Мы получим:
PID этого скрипта: 8454
PID оболочки: 5696
Скрипт запущен от пользователя: 1001
PID скрипта будет меняться при каждом новом запуске, потому что каждый раз будет создаваться новая подоболочка. Но PPID будет одинаковым пока вы будете выполнять скрипт в одной и той же оболочке.
Чтобы посмотреть другие экспортируемые переменные Bash читайте маны:
man bash
Комментариев 0