Raspberry-Pi

使用不同的工作目錄編寫啟動腳本

  • September 17, 2017

今年早些時候,我在我的樹莓派上安裝了 octoprint,以便控制我的 3d 列印機。

我已經能夠使用 octoprint 一次使 pi 控制 2 台列印機。我還添加了第二台相機 (USB) 來查看第二台列印機。我設法找到了一種方法來啟動第二台相機並編輯 octoprint 以查看兩者的區別。

我唯一的問題是每次我再次啟動我的樹莓派時,我都必須更改為不同的工作目錄:

cd ~/mjpg-streamer

然後啟動第二台相機:

./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"&

我希望能夠編寫一個腳本來在啟動時啟動相機,這樣我就不必每天 ssh 到我的樹莓派、登錄和發送命令。我發現了很多關於編寫啟動腳本的內容,但沒有發現關於更改其中的工作目錄的內容。

我一直在使用它來編寫啟動腳本(不成功):

sudo nano /etc/init.d/startsecondcamera

使啟動腳本cd在執行之前執行mjpg_streamer,就像您手動執行一樣:

#!/bin/sh

cd /home/geilisa/mjpg-streamer
./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"

這是假設您的主目錄是/home/geilisa.

您不能~在腳本中使用,因為它可能由 root 執行。如果以 root 身份執行該實用程序存在問題,sudo -u gelisia ./mjpg_streamer ...請在腳本中使用以使用者身份執行它gelisia


另一種方法是添加一個在啟動時執行的 cron 作業:

@reboot cd /home/geilisa/mjpg-streamer && ./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"

使用命令將其添加到您的 crontab 中crontab -e。這將使用您的 crontab(可能是一個空文件)打開一個編輯器。添加上面的行,保存並退出。

我知道的大多數 cron 都允許使用@reboot(和@hourly@daily)而不是通常在實際命令之前出現的五個作業調度列。

引用自:https://unix.stackexchange.com/questions/391889