Если у вас есть скрипт, который запускает какую-то программу и смотрит на статус выхода программы (с $?
), и вы хотите протестировать этот скрипт, выполнив что-то это приводит к тому, что $?
устанавливается на некоторое известное значение (, например, 3
), просто выполните
(exit 3)
Круглые скобки создают под-оболочку. Затем команда exit
вызывает эту оболочку sub -для выхода с указанным статусом выхода.
По сути, вы описали отслеживание PID (идентификатора процесса ), которое обычно выполняется диспетчером служб, таким как systemd
, или сценарием, написанным для конкретного демона. При запуске процесса PID записывается в файл, который позже используется для проверки состояния процесса или его остановки. Это не препятствует запуску другой копии программы, а просто еще одному экземпляру, запускаемому диспетчером служб или сценарием запуска.
Работа с «устаревшим файлом pid», когда процесс не запущен, но файл все еще существует, определяется путем перечисления процессов с этим идентификатором. Если соответствующий процесс не найден, можно предположить, что он был неправильно остановлен, а файл PID удален.