Linux

如何在系統啟動時從 rc.local 執行非特權腳本?

  • August 10, 2012

我已經使用幾個腳本設置了我/etc/rc.local的啟動一些服務,以便在重新啟動時啟動我的系統。

一個腳本以 root 身份執行並啟動 nginx、mysql、php 等……並且工作正常。

其他東西以我的普通使用者身份執行,所以我正在執行 sudo,它似乎在啟動時不起作用。在引導過程的這個階段以非特權使用者身份執行是否有問題?

我的 rc.local 看起來像這樣 -

#!/bin/sh
touch /var/lock/subsys/local

# main system start - web server, db etc...
/root/start-services.sh

# services run as me
/usr/bin/sudo -u tim /home/vhosts/myapp/bin/start-app.sh

在系統啟動時執行腳本,一切正常。但是在啟動時 start-app.sh 中的任何服務都沒有啟動,我在任何日誌中都找不到任何錯誤的痕跡。

我在這裡做錯了什麼?

嘗試:

su USER -c 'command &'

您應該嘗試/usr/bin/sudo -u tim /home/vhosts/myapp/bin/start-app.sh 2>&1 1>/tmp/start-app.log將 stdout 和 stderr 寫入文件。

引用自:https://serverfault.com/questions/416276