Linux
shell
rc.local
開機啟動
服務(wù)器是 debian 8,啟動腳本是 /etc/rc.local
按照網(wǎng)上說的各種方法試了半天攒射,就是不生效鲜戒。也沒有錯誤信息境钟。
排除各種可能性植酥,最后猜想是 /etc/rc.local
執(zhí)行的時候并沒有必要的環(huán)境。
再次搜尋相關(guān)的問題翔烁,找到了解決方法渺氧。
/etc/rc.local
腳本中要想執(zhí)行某一用戶的可執(zhí)行文件,需要先轉(zhuǎn)換到這個用戶才能正常執(zhí)行租漂。
示意如下。
cd /home/your_username
su your_username -c "/bin/bash /home/your_username/some/shell/start.sh"
大概思路就是颊糜,使用某個用戶的身份來運行命令哩治。
首先 cd
到用戶的目錄下,然后使用 su
后跟你的用戶名衬鱼,達到使用該用戶身份來執(zhí)行命令的效果业筏。
需要注意的是,要使用 -c
參數(shù)來執(zhí)行你要的命令鸟赫,否則如果單獨執(zhí)行 su username
會進入到另一個 shell 環(huán)境中蒜胖,導(dǎo)致接下來的命令無法繼續(xù)執(zhí)行消别。
另外需要注意的是,/etc/rc.local
默認(rèn)第一行是有 -e
參數(shù)的台谢。也就是如果有一行執(zhí)行失斞翱瘛(返回值不為 0),就不會繼續(xù)往下執(zhí)行了朋沮。