วิธีการเริ่มแอปพลิเคชัน GUI จาก cron


18

ฉันต้องเรียกใช้ Java applet จาก Firefox ปัญหาคือฉันต้องเรียกใช้ Firefox นี้จาก cron ถ้าฉันเรียกใช้จากบรรทัดคำสั่งและทำงานได้ดี แต่เมื่อวางคำสั่งใน cron มันล้มเหลว:

*/1 * * * * firefox http://domain.com/iqms/packetloss/iqmspacket2.html

1
คุณสามารถใช้ไลบรารี java ของSeleniumถ้าคุณต้องการฟังก์ชั่นมากกว่าแค่เปิดมัน
Övünç Metin

คุณยังสามารถใช้Seleniumกับ python ซึ่งง่ายกว่าสำหรับสคริปต์
ESala

คำตอบ:


25

Cron ทำงานในสภาพแวดล้อมที่ไม่รู้อะไรเกี่ยวกับเครื่องมือจัดการการแสดงผล ( $DISPLAYไม่ได้ตั้งค่า) หน้าต่างเทอร์มินัลของคุณที่คุณได้ทำการทดสอบมีการตั้งค่าไว้สำหรับมัน หากคุณลองในเทอร์มินัล "ของจริง" หรือผ่าน SSH คุณจะเห็นว่ามันพัง

หากคุณมีเซิร์ฟเวอร์ X เพียงตัวเดียวที่ทำงานอยู่การระบุจอแสดงผลอาจใช้งานได้:

* * * * *    DISPLAY=:0 firefox ...

คุณอาจใช้ความพยายามมากขึ้นในการหาว่าจอแสดงผลอยู่ในตำแหน่งใดแทนที่จะลองสมมติ:0แต่มันอาจจะใช้งานได้เกือบตลอดเวลา

หากคุณต้องการโหลดใหม่จำนวนมากให้ดูที่Tab Auto Reloadหรือปลั๊กอิน Firefox ที่คล้ายกัน


ฉันพบคำตอบนี้ แต่ก็ยังไม่เริ่ม Firefox หลังจากค้นหาไม่กี่ครั้งฉันพบว่าฉันต้องเรียกใช้ในฐานะผู้ใช้ที่ถูกต้องแทนจากรูท * * * * * * * * * * * * * * * * * * * * "DISPLAY =: 0.0 / usr / bin / Firefox ใหม่หน้าต่างx.com/iqms/packetloss/iqmspacket2.html "
fadabi Nawi

1
@fadabiNawi วิธีที่ง่ายกว่าในการจัดการที่จะติดตั้ง cron line ลงใน crontab ของผู้ใช้ที่ถูกต้อง เข้าสู่ระบบเป็นคนที่คุณต้องการและcrontab -e
Oli

7

ฉันพบคำตอบนี้ฉันกำลังมองหานอกจากของ oli:

หลังจากค้นหาไม่กี่ครั้งฉันพบว่าฉันต้องเรียกใช้ในฐานะผู้ใช้ที่ถูกต้องแทนจากรูท

* * * * * su fadabi -c "DISPLAY=:0.0 /usr/bin/firefox -new-window x.com/iqms/packetloss/iqmspacket2.html"; 

TQ


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