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

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пока оценок нет)
Загрузка...

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: