我希望每次服务器启动时都执行一个脚本.问题是我需要成为某个用户来执行脚本,如果我尝试以root身份执行它无法找到某些包(例如
ruby).
我尝试更改为xxx user01.
sudo su user01 /etc/init.d/script start
但是,这不起作用.
在脚本中运行sudo su user01并不意味着将以下命令发送到结果shell.事实上,它可能意味着一个新的shell被生成为user01,它永远不会退出!
两件事情:
>您可以通过将-c’命令…’参数传递给su来执行另一个用户的命令,例如su user01 -c’ / etc / init.d / script start’.>从rc.local启动使用/etc/init.d的服务不是正确的做法.您希望在启动时使用分发工具启用服务,例如chkconfig或update-rc.d.您也不希望/etc/init.d中的作业不应该以root身份启动.作业本身可以随意分配到另一个用户帐户,但应该由root调用.