Puncte:0

Scriptul Bash în Cron nu rulează Scriptul Python pe Ubuntu 20.04.2 LTS

drapel cl

Am un server Ubuntu 20.04.2 LTS pe care rulez câteva scripturi Python.

Am creat un cronjob pentru a rula un script bash pentru a verifica și a vedea dacă scriptul meu python rulează:

#!/bin/sh
#!/bin/python2.7


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

Aceasta este configurația cronjob:

* * * * * /home/ubuntu/mislaka/check_process.sh

Când verific fișierul jurnal, văd că adaugă comenzile echo la fișier, dar nu pornește scriptul python.

Dacă îmi rulez scriptul în afara cronjob-ului, funcționează conform așteptărilor.

Va aprecia orice ajutor.

Mulțumesc!

Puncte:0
drapel ng

Există unele diferențe între shell-urile bash și sh. Dacă utilizați bash, ar trebui să utilizați:

#!/bin/bash
Puncte:0
drapel cl

Am aflat care a fost problema mea. În loc să-mi scriu comanda sub instrucțiunea else într-o singură linie, am scris-o în două:

echo „start_server.py oprit” >> /home/ubuntu/mislaka/script_log.log && python2.7 start_server.py &

Acest lucru mi-a rezolvat problema.

bac0n avatar
drapel cn
Este puțin probabil, singurul lucru schimbat este ordinea în care este executată linia, bănuiesc că pierdeți calea către `start_server.py`

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.