Potrzebujesz pomocy z C, C++, perl, python, itp.
DamianM2007
Posty: 47 Rejestracja: 09 września 2007, 03:19
Post
autor: DamianM2007 » 18 stycznia 2016, 12:08
witam,
jak mogę zrobić wpis w crona aby sprawdzał czy jest już odpalony program sh zanim go spróbuje odpalić? jeżeli jest uruchomiony to chce aby go cron ponownie nie uruchomił.
LordRuthwen
Moderator
Posty: 2324 Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?
Post
autor: LordRuthwen » 18 stycznia 2016, 12:13
1. Piszesz skrypt.
2. Odpalasz go w cronie.
Co Ci będzie potrzebne do napisania skryptu: ps, if, grep, awk
DamianM2007
Posty: 47 Rejestracja: 09 września 2007, 03:19
Post
autor: DamianM2007 » 18 stycznia 2016, 12:14
czyli samą linijką w cronie tego nie zrobię?
LordRuthwen
Moderator
Posty: 2324 Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?
Post
autor: LordRuthwen » 18 stycznia 2016, 12:18
Możesz, jeśli zmieścisz w niej skrypt, nie ma znaczenia gdzie będzie kod, może być jednolinijkowiec, musisz z wyjścia ps wyciągnąć PID programu którego ma pilnować, i ifem sprawdzić czy jest pusty. Tyle.
dedito
Moderator
Posty: 3560 Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice
Post
autor: dedito » 18 stycznia 2016, 12:21
Ewentualnie, niektóre programy sygnalizują swój status w /var/run
DamianM2007
Posty: 47 Rejestracja: 09 września 2007, 03:19
Post
autor: DamianM2007 » 18 stycznia 2016, 12:26
jest to prosta apka sh odpalająca phpa...
kurde nie mam pomysłu jak to napisać w jednej linijce pod crona
pgrep start.sh >/dev/null 2>&1 && echo "$PROGRAM działa" || echo "$PROGRAM nie działa" elseif ./start.sh
?
LordRuthwen
Moderator
Posty: 2324 Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?
Post
autor: LordRuthwen » 18 stycznia 2016, 12:36
Zamiast elseif zastosuj po prostu ";"
dedito
Moderator
Posty: 3560 Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice
Post
autor: dedito » 18 stycznia 2016, 12:40
Kod: Zaznacz cały
[color=#333333]pgrep start.sh >/dev/null 2>&1 || ./start.sh[/color]
Rozumiem, że cron ma uruchamiać program tylko wtedy jeśli nie wykryje procesu.