Users
在腳本中更改使用者?
我正在嘗試更改使用者以便在啟動期間執行特定命令。它靜默失敗,顯然使用者更改沒有執行,因為我可以看出該命令沒有執行。
我在下面顯示的 initscript 中做錯了什麼?
respawn console none start on startup stop on shutdown script su -u anotheruser -c "myCommand" >> "myLogfile.log" end script
我假設您正在執行最新版本的 ubuntu 或基於upstart的發行版。您可以檢查
/var/log/daemon.log
錯誤。該標准
su
採用語法su [options] [username]
。結帳man 1 su
。您可能想嘗試:su -c "myCommand" anotheruser >> "myLogfile.log"
此外,還會發生一些事情(大部分是不可取的)
myLogfile.log
將歸root
.myLogfile.log``/
如果您不使用絕對路徑/tmp/myLogfile.log
(因為 upstart 執行時 pwd 設置為),則會在(根目錄)上創建/
。如果您希望文件歸
anotheruser
您所有,則可以將命令切換到。su -c "myCommand >> /tmp/myLogfile.log" anotheruser
如果您有早期執行的剩餘部分,或者沒有更改為類似的東西(通常,普通使用者無法在 root dir 上創建文件),這
myLogfile.log
可能root
會myLogfile.log
導致/tmp/myLogfile.log
問題/
。