Я запускаю dotnet приложение на VPS под управлением Ubuntu, и приложение должно работать непрерывно 24/7. Когда я запускаю приложение, я использую “nohup dotnet (имя) .dll”, и в HTOP те процессы будут просто иметь команду “dotnet (имя) .dll” присоединенный к ним. Однако из-за природы приложения, это должно работать в нескольких процессах, означая несколько PIDs. Я видел несколько примеров перезапуска процессов, если они отказывают, но они все, кажется, основаны на PIDs от того, что я видел. То, в каком сценарии я нуждался бы, который будет искать “dotnet”, управляет, чтобы выполнение остановки и выполнило несколько строк кода (включая команду сна так, чтобы это не перезапускало процесс снова, в то время как это уже запускает), и как я пошел бы о проверке, что это постоянно работает в фоновом режиме?
Существует на самом деле много способов выполнить эту цель, и она может пойти от тривиального, собственной разработки (например, while true; do my_process; done
(PS: не делайте этого)) к более сложным шаблонам (например, вовлечение my_process.pid
с init сценариями и пользовательскими вращениями файла журнала)..., но перед потерей работоспособности по той кроличьей норе, посмотрите на существующие решения, которые выполняют то же самое. Например: супервизор (см. также это учебное руководство), или monit, оба доступные через apt install ...
, но оба просто требующие некоторой дополнительной конфигурации.