Cron
使用 cron 的樹莓派自動執行不工作
我嘗試了幾種不同的解決方案,但都沒有奏效。
我在我的 Raspberry Pi 4 上安裝了一個 USB 儲存設備,USB3 埠中的 4gb。掛載目錄是
/media/usbstick/
.在這個位置是一個包含我的我的世界伺服器的文件夾。我還有一個shell腳本:
#!/bin/sh cd /media/usbstick/minecraft/ /usr/bin/screen -S minecraft /usr/bin/java -jar -Xmx3000M -XX:ParallelGCThreads=4 -XX:+UseParallelOldGC /media/usbstick/minecraft/paperclip.jar
如果我先鍵入手動啟動它,它工作正常:
cd /media/usbstick/minecraft/
然後通過鍵入執行它:
./start.sh
我嘗試使用以下命令設置 crontab:
crontab -e
並在行尾寫道:
@reboot /media/usbstick/minecraft/start.sh
但它不起作用。
所以我已經修復了它。基本上 screen 可以在“owned-user”終端上執行,所以你必須在分離模式下執行它:
您必須使用
-d
(start detached session) 和-m
(prevent $STY 環境變數使用)。謝謝大家,你們的回答對我幫助很大!
(也感謝@ctrl-alt-delor 糾正了我的英語錯誤措辭!)
您的
cron
工作可能沒有開始,因為cron
沒有跟踪系統服務何時可用。從某種意義上說,它是一個以自我為中心的守護程序,它只知道它何時啟動,並假定所有其他服務也已啟動。可能是其他原因,但鑑於您提供的資訊,這似乎是最有可能的嫌疑人。你應該做兩件事:
sleep
在開始你的cron
工作之前。這將使您的系統有時間安裝您的 USB 記憶棒,並啟動任何其他可能尚未準備就緒cron
的服務。- 您的腳本中的錯誤可能會設置
srderr
為寫入終端的輸出。但是由於您的cron
作業沒有可寫入的終端,因此您必須將其重定向到日誌文件才能查看。我對您的
cron
工作做了一些小改動,以完成上述兩個建議:@reboot (sleep 30; /media/usbstick/minecraft/start.sh) >> /home/pi/cronjoblog.txt 2>&1
如果您願意,還可以使用其他方法(例如檢查驅動器是否已安裝),但這很容易做到,即使
sleep
不能解決問題,您重定向到的文件也會有一些線索.