Puncte:1

Lucrarea Cron nu rulează pe Ubuntu 20.04.2 LTS

drapel cl

Am creat o lucrare Cron pentru a rula un script care verifică dacă un proces rulează, în cazul în care face doar imprimarea că procesul rulează, dacă nu, imprimă procesul nu rulează și repornește procesul:

#!/bin/sh

SERVICE="start_server.py"
dacă ps -ef | grep „$SERVICE” | grep -v grep >/dev/null
atunci
    echo „start_server.py rulează”
altfel
    echo „start_server.py oprit”
    python2.7 start_server.py &
fi

Ca utilizator Ubuntu, am creat următoarea lucrare cron rulând - crontab -e

* * * * * /home/ubuntu/mislaka/check_process.sh 2>&1 /home/ubuntu/mislaka/script_log.log

Din anumite motive, nu funcționează sau nu scrie rezultatul în fișierul jurnal.

Am încercat să repornesc serviciul cron, am încercat să creez jobul cron ca root, am schimbat toate permisiunile și utilizatorul care rulează scriptul, dar nimic nu funcționează.

Scriptul dacă îl rulez singur funcționează conform așteptărilor.

Versiunea Ubuntu:

Nu sunt disponibile module LSB.
ID distribuitor: Ubuntu
Descriere: Ubuntu 20.04.2 LTS
Lansare: 20.04
Nume de cod: focal

Mulțumesc anticipat

drapel uz
Jos
Redirecționarea dvs. este greșită. Înlocuiți `2>&1` cu `>>` și adăugați `2>&1` la sfârșit.
FedKad avatar
drapel cn
Sau înlocuiți `2>&1` cu doar `&>>`.
drapel in
„Ca utilizator Ubuntu, am creat următoarea lucrare cron” poate fi o problemă, deoarece lucrarea cron va rula numai atunci când acel utilizator este conectat. În general, aceste tipuri de joburi sunt făcute ca „rădăcină”: „sudo crontab -e `
drapel hr
@FedonKadifeli afaik care va funcționa numai dacă setează `SHELL=/bin/bash` în crontab (prestabilit este `/bin/sh`)
drapel hr
@matigo afaik nu este corect - cron rulează ca un demon și utilizatorii nu trebuie să fie autentificați pentru ca crontaburile lor să fie citite
Avihai avatar
drapel cl
@guiverc Ne pare rău pentru informația ratată: Nu sunt disponibile module LSB. ID distribuitor: Ubuntu Descriere: Ubuntu 20.04.2 LTS Lansare: 20.04 Nume de cod: focal
rattkin avatar
drapel fm
Dacă doriți o soluție dovedită și de încredere, uitați-vă la software de monitorizare precum monit. Este configurat printr-un simplu fișier ext și vă poate urmări procesul și îl poate reporni, trimite e-mail. De asemenea, poate urmări spațiul liber pe disc, dacă discul este plin, ceea ce este sursa multor posibile probleme în producție.
Avihai avatar
drapel cl
@guiverc Am schimbat titlul așa cum am sugerat
Puncte:1
drapel it

Locuri de muncă rulează cron, sau systemd Scripturile de pornire nu sunt rulate în același mediu de rulare pe care îl aveți pe desktop. systemd scripturile de pornire sunt rulate ca rădăcină. Nici unul dintre voi CALE modificările sau alte setări ale variabilelor de mediu sunt propagate automat către dvs cron loc de munca. De exemplu, nu există $DISPLAY, deci programele GUI au nevoie de un tratament special (citiți man xhost).

Se pot seta variabile de mediu pentru toate cron locuri de muncă în crontab fişier Citit om 5 crontab.

Uită-te la rezultatele echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias în fiecare dintre mediile dumneavoastră.

De când comanda parte a crontab linia este, implicit, interpretată de /bin/sh, care are o sintaxă mai simplă decât /bin/bash, recomand să aveți comanda fii un apel către a bash script (executabil, montat, începe cu #!/bin/bash) care configurează mediul, apoi apelează programul dorit.

Avihai avatar
drapel cl
Am început cu /bin/bash și nu a funcționat la fel de bine.
Puncte:0
drapel cl

Problema a fost că trebuia să-mi schimb scriptul și să editez jobul cron pentru a rula scriptul corect și a adăugat calea completă la script.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.