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