如何在 Fedora 启动时以其他用户身份运行命令?

如何在 Fedora 启动时以其他用户身份运行命令?

我有一台运行 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_profilefor user中定义的myuser,因此它们均未生效,脚本失败。

我想知道如何以其他用户身份运行命令,并为其设置所需的所有环境变量?我是否应该在系统级别设置所有这些环境变量,以便所有用户都可以使用?

答案1

如果您添加“-”开关,它将加载 myuser 的配置文件。换句话说,您可以在无头模式下加载配置文件环境变量。

su - myuser -c "cmd_to_execute"

相关内容