Как узнать 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