Konfiguruję monit i chcę monitorować daną aplikację w języku Python. Monit robi to, patrząc na pliki .pid dla procesów, ale nie wiem, gdzie to by było.
Próbowałem także stworzyć swój własny plik wykonywalny i uruchomić go - tutaj też nie mogę dowiedzieć się, gdzie jest tworzony plik .pid.
I czy wszystkie procesy mają plik .pid?
linux
monitoring
monit
pid
Yarin
źródło
źródło
.pid
plik. Aplikacja (lub jej skrypt startowy) musi ją wyraźnie utworzyć.Odpowiedzi:
Zazwyczaj pliki PID dla demonizowanych procesów znajdują się w
/var/run/
systemach typu Redhat / CentOS.Poza tym zawsze możesz zajrzeć do skryptu inicjującego proces. Na przykład demon SSH jest uruchamiany ze skryptem w
/etc/init.d/sshd
. Czasami PID zostanie tam zdefiniowany (wyszukaj pid, PID, PIDFILE, PID_FILE itp.).Jednak większość innych demonów w systemach typu RHEL pozyskuje
/etc/init.d/functions
skrypt dla niektórych typowych funkcji.W przypadku wszystkich źródeł
/etc/init.d/functions
PID będzie dostępny/var/run/*.pid
.W przypadku niestandardowych aplikacji PID zostanie zdefiniowany w skrypcie opakowania (mam nadzieję). Jednak większość programistów, których znam, przestrzega tej samej konwencji co powyższe demony.
Jeśli zrobić napotkać coś bez pliku PID, należy pamiętać, że Monit może monitorować na patern strun proces, jak również .
źródło
monit procmatch anything
z wiersza poleceń, dostajęmonit: invalid argument -- procmatch
. Jakieś pomysły?monit -V
) Który system operacyjny / dystrybucja?Inne podejście, które podjąłem:
Mam serwer bazy danych działający w trybie osadzonym, a dane znajdują się w katalogu zawierającym aplikację.
Baza danych ma coś w rodzaju pliku .pid, ale nazywa to plikiem blokady. Aby zlokalizować ten plik blokady, wymieniłem wszystkie pliki otwarte przez aplikację:
To dało mi długą listę obejmującą gniazda, potoki, pliki serwerów itp. Kilka filtrów i dostałem to, czego potrzebowałem:
źródło