สคริปต์แบบธรรมดาทำงานผ่าน cronjob ไม่ทำงาน แต่ทำงานได้จากเชลล์


0

ฉันอยู่บนโฮสติ้งที่ใช้ร่วมกันและฉันพยายามกำหนด cronjob ให้ทำงานทุก ๆ ครั้ง ผ่าน cPanel ฉันมีกำหนดจะเรียกใช้สคริปต์ของฉัน แต่แม้ว่าตามที่โฮสต์ของฉันสนับสนุน cronjob ทำงาน แต่สคริปต์ดูเหมือนจะไม่ทำอะไรเลย คำสั่งงาน cron ที่ฉันตั้งค่าผ่าน cPanel คือ:

/bin/sh /home1/myusername/public_html/somefolder/cronjob2.sh

และ cronjob2.sh

#!/bin/bash
/home1/myusername/public_html/somefolder/node_modules/forever/bin/forever stop 0

เมื่อผ่าน SSH ฉันจะดำเนินการ:

/home1/myusername/public_html/somefolder/cronjob2.sh

มันหยุดกระบวนการตลอดไปตามที่ต้องการ จาก cronjob ไม่ได้ทำอะไรเลย

ฉันจะทำงานนี้ได้อย่างไร

แก้ไข:

ดังนั้นฉันได้ลอง:

/bin/sh /home1/username/public_html/somefolder/cronjob2.sh >> /tmp/mylog 2>&1

และmylogรายการพูดว่า:

/usr/bin/env: node: No such file or directory

ดูเหมือนว่าจะต้องมีการเรียกใช้โหนดตลอดไปและไม่พบสิ่งนี้ ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


มันควรทำ แต่ฉันต้องการถามคุณ: มันจะหยุดตลอดไปแม้ว่าคุณจะเรียกใช้สคริปต์ด้วย `/ bin / sh /home1/myusername/public_html/somefolder/cronjob2.sh '?
Hastur

ถ้าฉันเรียกใช้งานสคริปต์ `/ bin / sh /home1/myusername/public_html/somefolder/cronjob2.sh 'จะใช้งานได้ ฉันยังอัปเดตคำตอบของฉัน
spirytus

คำตอบ:


1

คุณอาจต้องกำหนด PATH และตัวแปรสภาพแวดล้อมอื่น ๆ ของคุณเมื่อเริ่มต้นสคริปต์ พิมพ์ "set" เพื่อแสดงค่าในเชลล์ปัจจุบันของคุณจากนั้นคัดลอก / วางสิ่งที่คุณต้องการเพิ่มบรรทัดจนกว่าสคริปต์ของคุณจะทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.