我有一台运行 Fedora 19 的服务器。当服务器启动时,我需要运行一堆命令。我在/etc/rc.d/rc.local
文件中执行此操作。这很有效。现在我需要nodejs
从此脚本启动我的服务器。
我不想以 的身份启动服务器程序root
。因此,我在文件中尝试了类似下面的操作rc.local
。
su myuser -c /home/myuser/project/path/prod_start.sh
执行prod_start.sh
方式为myuser
。但在 中prod_start.sh
,我将目录更改为应用程序根目录。它还要求在运行前设置一些环境变量。但由于这些环境变量是在bash_profile
for user中定义的myuser
,因此它们均未生效,脚本失败。
我想知道如何以其他用户身份运行命令,并为其设置所需的所有环境变量?我是否应该在系统级别设置所有这些环境变量,以便所有用户都可以使用?
答案1
如果您添加“-”开关,它将加载 myuser 的配置文件。换句话说,您可以在无头模式下加载配置文件环境变量。
su - myuser -c "cmd_to_execute"