Как я могу выполнить команду, если все процессы определенного имени отказывают?

Я запускаю dotnet приложение на VPS под управлением Ubuntu, и приложение должно работать непрерывно 24/7. Когда я запускаю приложение, я использую “nohup dotnet (имя) .dll”, и в HTOP те процессы будут просто иметь команду “dotnet (имя) .dll” присоединенный к ним. Однако из-за природы приложения, это должно работать в нескольких процессах, означая несколько PIDs. Я видел несколько примеров перезапуска процессов, если они отказывают, но они все, кажется, основаны на PIDs от того, что я видел. То, в каком сценарии я нуждался бы, который будет искать “dotnet”, управляет, чтобы выполнение остановки и выполнило несколько строк кода (включая команду сна так, чтобы это не перезапускало процесс снова, в то время как это уже запускает), и как я пошел бы о проверке, что это постоянно работает в фоновом режиме?

0
задан 19 November 2019 в 23:55

1 ответ

Существует на самом деле много способов выполнить эту цель, и она может пойти от тривиального, собственной разработки (например, while true; do my_process; done (PS: не делайте этого)) к более сложным шаблонам (например, вовлечение my_process.pid с init сценариями и пользовательскими вращениями файла журнала)..., но перед потерей работоспособности по той кроличьей норе, посмотрите на существующие решения, которые выполняют то же самое. Например: супервизор (см. также это учебное руководство), или monit, оба доступные через apt install ..., но оба просто требующие некоторой дополнительной конфигурации.

0
ответ дан 21 December 2019 в 23:54

Другие вопросы по тегам:

Похожие вопросы: