sudo默認情況下不繼承宿主用戶的環境變量,要設置sudo的環境變量,有以下幾種方式:
1,將需要運行的程序寫到腳本中,在腳本中設置環境變量,如下:
$cat run.sh
export PATH=/usr/local/bin:$PATH
nohup node app.js&
$sudo ./run.sh
2,給sudo設置別名,將環境繼承寫到命令行中,在.bashrc中添加:
alias sudo='sudo env PATH=$PATH NODE_PATH=$NODE_PATH'
$source .bashrc
$sudo node app.js&
3,修改sudoers配置,使它不要重置環境變量,註釋掉/etc/sudoers中的這一句:
Defaults env_reset
4,直接修改要運行的程序的權限,使之有root權限,這樣不用sudo就可以獲得root的執行權限,比如打開80端口:
#chmod u+s /usr/local/bin/node
$node app.js