Crontab ไม่ใช้คำสั่งง่ายๆ


0

เข้าสู่ระบบในฐานะผู้ใช้ที่piฉันดำเนินการ: crontab -eและฉันเพิ่มบรรทัดนี้ในตอนท้ายของไฟล์บันทึกและออก @reboot touch /home/pi/Documents deleteme

จากนั้นฉันจะรีบูทและไม่พบไฟล์ใด ๆdeletemeภายในโฟลเดอร์/home/pi/Documents

ปัญหาอยู่ที่ไหน

นี่คือการอนุญาตของโฟลเดอร์:

drwxr-xr-x 6 pi pi 4096 nov 24 09:50 Documents

คำตอบ:


3

คุณควรจะมี:
@reboot touch /home/pi/Documents/deleteme

และคุณควรมีdeletemeไฟล์ใน/home/pi/Documentsไดเรกทอรีของคุณ
สิ่งที่คุณพยายามทำที่นี่จริง ๆ คือการปรับปรุงแอตทริบิวต์วันที่ของไดเรกทอรีเอกสาร แต่มีการเพิ่มพารามิเตอร์ - "deleteme"
คุณสามารถตรวจสอบได้ว่า cron พยายามเรียกใช้ crontab ใด ๆ โดยดูที่บันทึก cron หรือ/var/log/cronไม่


คุณถูกต้องมันเป็นเพียงข้อผิดพลาดtouchทำงานได้อย่างสมบูรณ์ แต่ดังนั้นฉันจึงไม่เข้าใจว่าทำไมสิ่งนี้ถึงใช้งานไม่ได้: @reboot python3 /home/pi/Documents/my_script.py &ในขณะที่ถ้าฉันเขียนด้วยตนเอง: python3 /home/pi/Documents/my_script.py &มันทำงานได้อย่างสมบูรณ์ ฉันไม่เข้าใจจริงๆ
ทิมมี่

ฉันอาจจะผิด แต่อาจ&เซ็นที่นี่ทำให้เกิดปัญหา? งาน Cron จะถูกดำเนินการเป็นงานที่แยกต่างหากอยู่แล้วดังนั้นจึงไม่มีคำแนะนำให้สั่งให้ทำงานแบบเบื้องหลังโดยเฉพาะ นอกจากนี้ - ลองใส่เส้นทางที่แน่นอนสำหรับpythonไบนารี มันมักจะเป็นสาเหตุของข้อผิดพลาดเช่นกัน
Jarek Jóźwik

น่าเสียดายที่มันใช้งานไม่ได้ แต่@reboot /usr/bin/python3 /home/pi/Documents/iceuploadbot.pyบอทก็ไม่สามารถเริ่มทำงานได้ ต้องมีความชัดเจนมากขึ้นบางครั้งก็เริ่มต้นโดยไม่มีปัญหาครั้งอื่น ๆ (ส่วนใหญ่) มันไม่ทำงาน
ทิม

ตรวจสอบบันทึก cron ในกรณีนั้นถ้า cron อย่างน้อยพยายามเริ่ม bot นั้นในการบู๊ตทุกครั้ง หากบางครั้งมันเริ่มบางครั้งไม่ได้บางทีมันอาจเป็นปัญหาเวลา - / home ไม่ได้ถูกเมาท์ คุณสามารถย้ายสคริปต์นั้นไปที่อื่นได้หรือไม่? สำหรับไดรฟ์ข้อมูลที่ติดตั้งในเวลาบูตแน่นอน?
Jarek Jóźwik

ขอบคุณฉันแก้ไขปัญหาคือเวลาบูต boot ตรวจสอบการเชื่อมต่อ แต่ LAN ไม่ได้เชื่อมต่อแล้ว ฉันแก้ไขการนอนหลับ 5 วินาทีตามคำสั่งแรกของบอท การย้ายบอทที่อื่นไม่ได้ช่วยอะไร
Timmy

0

คำอธิบายที่น่าจะเป็นไปได้มากที่สุด@rebootคือกำลังถูกดำเนินการในช่วงเวลาที่ไม่ได้ติดตั้ง/ home

เพื่อให้แน่ใจว่าเปลี่ยนบรรทัดเป็นดังนี้:

@reboot echo "test" > /var/tmp/reboot.txt 2>&1

จากนั้นรีบูตและตรวจสอบว่ามีไฟล์อยู่ใน/var/tmpชื่อreboot.txtหรือไม่

หากเป็นกรณีนี้ให้ย้ายสคริปต์ของคุณไปยังตำแหน่งที่มีอยู่ตั้งแต่เวลาบูตตัวอย่างเช่น/ usr / localและทดสอบอีกครั้ง

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