Процес оболонки полягає в $$
тому, що це особливий параметр
У Linux файлова система proc (5) надає багато інформації про процеси. Можливо,
pgrep (1) (який доступ /proc
) також може допомогти.
Тож спробуйте cat /proc/$$/status
отримати статус процесу оболонки.
Отже, його батьківський ідентифікатор процесу можна отримати, наприклад
parpid=$(awk '/PPid:/{print $2}' /proc/$$/status)
Потім використовуйте $parpid
у своєму сценарії посилання на батьківський процес pid (батьківський елемент оболонки).
Але я не думаю, що це вам потрібно!
Прочитайте посібник із Bash (або з обережністю розширений посібник із сценаріїв bash , який містить помилки) та вдосконалене програмування Linux .
Зверніть увагу, що деякі процеси демона сервера (які, як правило, повинні бути унікальними) явно записують свій pid /var/run
, наприклад, sshd
демон сервера записує свій pid у текстовий файл /var/run/sshd.pid
). Можливо, ви захочете додати таку функцію у свої власні серверні програми (закодовані на C, C ++, Ocaml, Go, Rust або іншій компільованій мові).