Automatyczne odpalanie procesu po jego zamknieciu

Tutaj można zadać pytanie, jeśli Linuksa widzi się pierwszy raz w życiu ;)
wujeksamozuo
Sędziwy Jeż
Sędziwy Jeż
Posty: 43
Rejestracja: 31 gru 2011, 13:41
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Kontakt:

Automatyczne odpalanie procesu po jego zamknieciu

Post autor: wujeksamozuo »

Witam, poszukuje jakiegoś narzędzia czy czegoś takiego co by sprawdzało czy dany proces jest uruchomiony i w razie jego braku odpalał go. Pod windowsa jest to aplikacja o nazwie Application Monitor, czy coś takiego jest pod linuxa? Ew np za pomocą crona można by było sprawdzać czy aplikacja/proces jest odpalony i jeśli nie to go odpalać?
Ostatnio zmieniony 05 maja 2013, 20:17 przez wujeksamozuo, łącznie zmieniany 1 raz.
verdorben
Wytworny Kaczor
Wytworny Kaczor
Posty: 470
Rejestracja: 30 mar 2009, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: ARM

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: verdorben »

* * * * * - cron co minutę lub ustawić jak się chce

CHECK=`pidof -x nazwa_aplikacji`
[ ! -z $CHECK ] || /ścieżka/do_aplikacji
wujeksamozuo
Sędziwy Jeż
Sędziwy Jeż
Posty: 43
Rejestracja: 31 gru 2011, 13:41
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: wujeksamozuo »

No w cronie to wiem a odnosnie tego CHEK to gdzie to wpisac ?
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: ethanak »

jeśli aplikacja nie zwalnia terminala można inaczej:

Kod: Zaznacz cały

flock -en /jakis/plik.lock /twoja/aplikacja
z crona co minutę albo nawet odpalić skrypt

Kod: Zaznacz cały

while true;do /twoja aplikacja; sleep 1;done
wujeksamozuo
Sędziwy Jeż
Sędziwy Jeż
Posty: 43
Rejestracja: 31 gru 2011, 13:41
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: wujeksamozuo »

Po odpaleniu aplikacji terminal moge zamknąć więc pierwszy sposób odpada co do 2 to chce sie upewnić mam spisać:

Kod: Zaznacz cały

while true;do /twoja aplikacja; sleep 1;done
I to spowoduje ze co minute bedzie sprawdzane przez crona czy aplikacja jest odpalona a jak nie to ja odpali?
Jako aplikacje podaje ścieżke do niej, czy moze to być także skrypt? chodzi o to ze u mnie aplikaja jest odpalana ze skryptu. -> ./start
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: ethanak »

jeśli aplikacja zwalnia terminal drugi sposób również odpada. można wiedzieć co to za tajemnicza aplikacja? bo może jakiś najlepszy sposób się znajdzie...
wujeksamozuo
Sędziwy Jeż
Sędziwy Jeż
Posty: 43
Rejestracja: 31 gru 2011, 13:41
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: wujeksamozuo »

Jest to serwer czatowy + podłaczenie do mysql (baza nickow i uprawnien)
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: ethanak »

sprawdź czy w opcjach nie ma czegoś w stylu "dont daemonize" albo jakoś tak. jeśli jest oba moje sposoby będą działać.
wujeksamozuo
Sędziwy Jeż
Sędziwy Jeż
Posty: 43
Rejestracja: 31 gru 2011, 13:41
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: wujeksamozuo »

W opcjach? tu nie ma nic takiego, mam katalog z likami gdzie uruchamiany jest 1 - serwer inne to konfiguracyjne i logi. Nie mam do tego zadnej konsolki, jedynie instrukcje w pdf
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: ethanak »

no to sprawdź w tej instrukcji... albo odpal aplikację z -h czy --help, może coś mądrego z siebie wydzieli.
norvoles
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1113
Rejestracja: 04 sty 2008, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: norvoles »

@wujeksamozuo
Może inaczej.

1. Utwórz sobie zmienną globalną, która będzie trzymać PID procesu dodając odpowiedni wpis np. do ~/.bashrc

Kod: Zaznacz cały

export th_pid=''
2. Napisz launcher do programu, który przechwyci PID procesu (u mnie to będzie dla przykładu Thunderbird)

Kod: Zaznacz cały

#!/bin/sh
thunderbird & th_pid=$!
3. Teraz zmienna $th_pid trzyma PID Thunderbirda. Wystarczy co jakiś czas sprawdzać, czy istnieje taki proces:

Kod: Zaznacz cały

ps aux | grep $th_pid | wc -l
Jak zwróci 1, to proces nie żyje i można go zrestartować.
Jak zwróci 2, to proces żyje i nie trzeba nic robić.

Teraz wystarczy opakować powyższe w jakiś zgrabny skrypt, dorzucić do crona jego cykliczne uruchamianie i sprawdzić działanie.
Powodzenia ;)
wujeksamozuo
Sędziwy Jeż
Sędziwy Jeż
Posty: 43
Rejestracja: 31 gru 2011, 13:41
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Kontakt:

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: wujeksamozuo »

Norvoles to wyglada zgrabnie aczkolwiek jest maly haczyk, proces przy kazdym uruchomieniu ma inny pid
norvoles
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1113
Rejestracja: 04 sty 2008, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: norvoles »

wujeksamozuo pisze:Norvoles to wyglada zgrabnie aczkolwiek jest maly haczyk, proces przy kazdym uruchomieniu ma inny pid
I za każdym razem gdy uruchomisz lub zrestartujesz program za pomocą podanego skryptu, zmienna $th_pid będzie zawierać aktualny PID.
Ubek308
Zakręcona Traszka
Zakręcona Traszka
Posty: 574
Rejestracja: 25 maja 2011, 10:17
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Automatyczne odpalanie procesu po jego zamknieciu

Post autor: Ubek308 »

Sugeruję poczytac o tym co to jest respawn.
ODPOWIEDZ

Wróć do „Przedszkole Linuksa”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 23 gości