如何在系统启动时从 rc.local 运行非特权脚本?

如何在系统启动时从 rc.local 运行非特权脚本?

我已经设置好/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 中的任何服务均未启动,我在任何日志中都找不到任何错误痕迹。

我在这里做错了什么?

答案1

尝试:

su USER -c 'command &'

答案2

您应该尝试/usr/bin/sudo -u tim /home/vhosts/myapp/bin/start-app.sh 2>&1 1>/tmp/start-app.log将 stdout 和 stderr 写入文件。

相关内容