如何在以 root 身份启动时运行脚本

如何在以 root 身份启动时运行脚本

我有一个脚本,无需使用网络管理器即可自动启用我的 wifi,但我不知道如何在系统启动时以 root 身份运行该脚本。如何让脚本在启动时自动运行?

答案1

将要运行的脚本放在 /etc/init.d 目录中,并使该脚本可执行。

chmod 755 myscript

完成后,在您想要使用的运行级别目录中创​​建一个符号链接,例如,如果您想在图形运行级别 2(Ubuntu 的默认运行级别)中运行程序,您可以将其放在目录中/etc/rc2.d。您不能将它放在目录中,您必须通过使用“S”指示启动来表示它何时运行,并且执行顺序很重要。通过为其指定一个更高的数字,将其放在目录中所有其他内容之后。

如果要运行的最后脚本是rc.local并且它被命名S99rc.local那么您需要将脚本添加为S99myscript

ln -s /etc/init.d/myscript /etc/rc3.d/S99myscript

每个向后兼容的/etc/rc*.d目录都有指向该目录的符号链接/etc/init.d/

答案2

使用crontab选项让脚本在重启后运行,

您可以通过在命令中添加前缀来实现@reboot 非标准预定义调度定义计划任务

以 root 用户身份打开 crontab(您必须在此处使用sudo以编辑您的根的crontab 代替你的用户的定时任务 (crontab):

sudo crontab -e

然后,在底部添加一条记录,包含您想要以 root 身份运行的命令:

@reboot path/to/your/executable/to/be/run/as/root 

那将会实现你想要的效果。

请注意,您可以看到您的用户和 root 的 crontab 条目,如下所示:

crontab -l       # list your user crontab entries
sudo crontab -l  # list root's crontab entries

为了以 root 身份运行命令,它必须在你的 root 的 crontab 中。

答案3

将该命令包含在 中/etc/rc.local。每当用户的运行级别改变时,它就会运行。

注意:您必须将该命令放在 /etc/rc.local 中包含“exit 0”的最后一行之前。

答案4

将您的脚本文件包含到/etc/init.d/ 具有可执行权限的文件中,然后设置不同的运行级别

$ update-rc.d script-name default

它会在启动时执行你的脚本。

相关内容