启动脚本需要root权限

启动脚本需要root权限

我有一个需要在启动时运行的脚本。我把它放在 init.d 中。我需要使用 root 权限执行脚本中的命令之一。我该怎么做呢?

编辑1:

作为参考,这是 ClearCase/ClearQuest RHEL 6.7 服务器。似乎存在与 CC 在许可证管理器之前启动相关的问题。因此,我想运行以下命令(所有命令都需要 root 权限):

 /path/to/atria_start stop  # stop CC
 /path/to/start_lmgrd start # start license manager (flexlm)
 /path/to/atria_start start # restart CC

这些都没有发生。我将它们放在 /etc/init.d 中的一个简单脚本“cc_startup.sh”中

答案1

如果它在 init.d 中,那么它应该以 root 身份运行。如果您希望它在启动时运行,则将其放入例如/etc/rc.d/rc2.d/etc/rc2.d根据您的操作系统发行版/版本。例如,您需要创建以下格式的链接:

S##Name -> ../init.d/scripthere.sh其中##相当于您希望它在启动时运行。你希望它在 ssh 之前出现吗?阿帕奇之后?在你的数据库之前?等等等等。知道这一点就会告诉您要输入哪些数字。

为了实现这一点,您需要ln -s ../init.d/scripthere.sh S##name从正确的 rc 目录运行。

答案2

如果您要在 RH 和派生发行版上创建自己的 init 脚本,那么您确实应该编写它以使用默认的 chkconfig 启动配置实用程序(因为这是几乎所有 RHL 管理员都知道和使用的)。

以下内容很好地涵盖了基础知识。 创建新的 chkconfig 初始化脚本

答案3

我已经在 Bash 中测试过它,但没有在其他 shell 中测试过。如果想让它只在你的机器上工作。您可以使用以下内容:

echo $MY_SUDO_PASSWORD | sudo -S <command>

当然,如果 $MY_SUDO_PASSWORD 与您的 sudo 密码匹配,这将在 sudo 下运行,而不提示输入密码。

相关内容