Score:0

สคริปต์ Bash ใน Cron ไม่ทำงาน Python Script บน Ubuntu 20.04.2 LTS

ธง cl

ฉันมีเซิร์ฟเวอร์ Ubuntu 20.04.2 LTS ซึ่งฉันรันสคริปต์หลามไม่กี่ตัว

ฉันสร้าง cronjob เพื่อเรียกใช้สคริปต์ทุบตีเพื่อตรวจสอบว่าสคริปต์ไพ ธ อนของฉันทำงานอยู่หรือไม่:

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


SERVICE="start_server.py"
ถ้า ps -ef | grep "$SERVICE" | grep -v grep >/dev/null
แล้ว
    echo "start_server.py กำลังทำงาน" >> /home/ubuntu/mislaka/script_log.log
อื่น
        python2.7 /home/ubuntu/mislaka/start_server.py &
    echo "start_server.py หยุดทำงาน" >> /home/ubuntu/mislaka/script_log.log
ไฟ

นี่คือการกำหนดค่า cronjob:

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

เมื่อตรวจสอบไฟล์บันทึก ฉันเห็นว่ากำลังเพิ่มคำสั่ง echo ลงในไฟล์ แต่มันไม่ได้เริ่มสคริปต์ไพธอน

ถ้าฉันเรียกใช้สคริปต์นอก cronjob มันก็ทำงานตามที่คาดไว้

จะขอบคุณความช่วยเหลือใด ๆ

ขอขอบคุณ!

Score:0
ธง cl

พบว่าปัญหาของฉันคืออะไร แทนที่จะเขียนคำสั่งภายใต้คำสั่ง else ในบรรทัดเดียว ผมเขียนเป็นสอง:

echo "start_server.py หยุดทำงาน" >> /home/ubuntu/mislaka/script_log.log && python2.7 start_server.py &

สิ่งนี้แก้ไขปัญหาของฉัน

bac0n avatar
cn flag
ไม่น่าเป็นไปได้ สิ่งเดียวที่เปลี่ยนไปคือลำดับที่บรรทัดถูกดำเนินการ ฉันสงสัยว่าคุณไม่มีเส้นทางไปยัง `start_server.py`
Score:0
ธง ng

มีความแตกต่างบางอย่างระหว่างเชลล์ทุบตีและเชลล์ หากคุณใช้ bash คุณควรใช้:

#!/bin/bash

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา