我想在系统启动时启动一个脚本并寻找最佳方式,我的方式是:
vi/etc/systemd/system/myscript.service
[Service] Type=simple ExecStart=/usr/bin/myscript CPUSchedulingPolicy=rr CPUSchedulingPrioty=27 [Install] WantedBy=multi-user.target graphical.target
systemctl daemon-reload; systemctl 启用我的脚本; systemctl 启动 rmyscript
它运行良好,但只是想知道是否有其他更好的方法。
最佳答案
有几种方法可以实现这一点,但您需要 root 权限才能执行以下任何操作。要获取 root,请打开终端并运行命令:
sudo su
并且命令提示符将更改为“#”,表示终端 session 具有 root 权限。
备选方案#1。添加启动脚本
在/etc/init.d/myscript
中创建一个新脚本:
vi /etc/init.d/myscript
(显然它不必被称为“myscript”。)在这个脚本中,做任何你想做的事。也许只是运行您提到的脚本:
#!/bin/sh
/path/to/my/script.sh
使其可执行:
chmod ugo+x /etc/init.d/myscript
配置初始化系统在启动时运行这个脚本:
update-rc.d myscript defaults
备选方案#2。将命令添加到/etc/rc.local
vi /etc/rc.local
内容如下:
# This script is executed at the end of each multiuser runlevel
/path/to/my/script.sh || exit 1 # Added by me
exit 0
备选方案#3。添加 Upstart 工作
创建/etc/init/myjob.conf
:
vi /etc/init/myjob.conf
包含以下内容:
description "my job"
start on startup
task
exec /path/to/my/script.sh
顺便说一句:
如果您可以编辑 crontab (crontab -e)
并创建如下条目,则无需成为 root 用户:
@reboot /path/to/script.sh
这样,您就可以以普通用户身份运行它。 @reboot 仅表示它在计算机启动时运行(不一定仅在重新启动时运行)。
关于linux - 在 Linux 上启动时启动脚本的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40861280/