我執行它在rc.local中引用的shell腳本。該文件是git-versioned,需要更改爲每個用戶的相應主目錄。絕對路徑工作正常,但這些機器間不同。 $ HOME或〜/尚未定義,如何在啓動時更改爲rc.local中的主用戶目錄?
這是工作腳本:
CD /家庭/用戶名/ rightDIR
PHP -S本地主機:8000
該腳本啓動服務器,但無法遷入正確的目錄:
cd $ HOME/rightDIR
PHP -S本地主機:8000
我執行它在rc.local中引用的shell腳本。該文件是git-versioned,需要更改爲每個用戶的相應主目錄。絕對路徑工作正常,但這些機器間不同。 $ HOME或〜/尚未定義,如何在啓動時更改爲rc.local中的主用戶目錄?
這是工作腳本:
CD /家庭/用戶名/ rightDIR
PHP -S本地主機:8000
該腳本啓動服務器,但無法遷入正確的目錄:
cd $ HOME/rightDIR
PHP -S本地主機:8000
cd /home/*/rightDIR && php -S localhost:8000 &
如果只有一個用戶在自己的主文件夾中有一個rightDIR
應該工作(否則,第一場比賽獲勝)。
的&&
鏈的命令一起。如果cd
命令失敗,則後面的命令將不會啓動。
的&
末開始的命令在後臺殼工作,使外殼可以繼續並運行此行rc.local中
之後到來的任何命令。如果啓動掛起無論如何,考慮增加nohup
而不是php
左側,以便從shell中分離命令。
誰做你的「主用戶」是什麼意思? '$ HOME'設置和'〜'將使用'$ HOME'的電流值,但他們都將參照根用戶的主目錄,如'root'是執行'rc.local'用戶。 – chepner
我的意思是將要登錄,一旦機器啓動(如我)的用戶,所以也許我應該改一下:我怎麼能cd到即使腳本是由根家在哪裏執行不同的用戶目錄。 (每個系統上只有一個用戶) – TheRed
再次,什麼用戶?機器可以有多個用戶,並且在'rc.local'執行的時候,* none *都是登錄的。除了'root'之外,沒有任何其他尊貴用戶的概念。如果有一個特定的非root用戶參與啓動過程,則必須在腳本中明確說明是誰。機器無法猜測*一旦啓動完成後,誰將登錄。 – chepner