Witam,
chciałbym, aby aplikacja działała na serwerze cały czas w tle i w razie jak się położy, to żeby serwer sam sobie poradził (a przynajmniej spróbował) uruchomić ją ponownie.
Myślałem, żeby zrobić ją jako usługę, tylko nie mam pojęcia jak się do tego zabrać.
Aplikacja jest w C++ (jeżeli to istotne), serwer to Ubuntu 18 LTS
Aplikacja działająca jako service
- Rejestracja: dni
- Ostatnio: dni
- Postów: 310
- Rejestracja: dni
- Ostatnio: dni
- Postów: 540
Może jakiś CRON co sprawdza odpowiedź aplikacji.
Aplikacja w ustalonym interwale wysyła:
mess="działam"
mess="działam"
jeśli nie otrzymamy odpowiedzi w wymaganym czasie + czas zwłoki serwera:
run application
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Rzeszów
Zrób usługę systemd.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 761
Poczytaj jak dodać własny program jako usługę w systemd, będziesz miał monitorowanie czy apka żyje i automatyczne próby restartu jak padnie. Np. https://medium.com/@benmorel/creating-a-linux-service-with-systemd-611b5c8b91d6
- Rejestracja: dni
- Ostatnio: dni
- Postów: 82
Wydaje mi się, że najlepszym rozwiązaniem obecnie byłby systemd. Ma on możliwość konfiguracji aby usługa została uruchomiona ponownie w przypadku gdy Twoja aplikacja wyłoży się.
Inną sprawą jest sytuacja kiedy Twoja aplikacja będzie istnieć (jako proces) ale się z jakichś powodów zawiesi. Wtedy chyba najlepiej zainteresować się tzw. watchdog'iem. Chociaż o ile dobrze pamiętam to systemd ma wsparcie do tego typu monitoringu.