http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic.html#INISCRPTACT
В соответствии с этим systemctl статус имеет специальный список кодов возврата, которые возвращают информацию об услуге, которую вы запрашиваете.
Если запрашивается действие статуса, сценарий инициализации возвращает следующие коды состояния выхода.
0 program is running or service is OK
1 program is dead and /var/run pid file exists
2 program is dead and /var/lock lock file exists
3 program is not running
4 program or service status is unknown
5-99 reserved for future LSB use
100-149 reserved for distribution use
150-199 reserved for application use
200-254 reserved
Это нормально, но я ошеломлен тем фактом, что 1 не означает, что systemctl status
сам отказал (НЕ ПОДДЕРЖИВАЮЩАЯ СЛУЖБА).
Я пишу скрипт, который запрашивает статус службы, которая находится в процессе запуска, поэтому я ожидаю увидеть код состояния 3 пару раз, а затем 0. Но каким кодом я должен быть ожидаете, когда «команда systemctl status
- это бразок»?
Мне хочется просто сказать, что 5+ - это неисправимая ошибка, и я должен подождать, пока сервис не запустится, но это не совсем то, что говорится в этом документе. Это просто дает общие оговорки.
Если это поможет, я использую Ubuntu 16.04 и 18.04. Может быть, у этого продавца есть конкретные коды? Понятия не имею.