我想开始一个脚本,当系统启动并寻找最佳方法时,我的方法是:
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 enable myscript; systemctl start rmyscript
它运作良好,但只是想知道如果有另一种更好的方法。
有几种方法可以实现这一点,但是对于以下任何情况,您将需要root权限。 要获得root权限,请打开终端并运行以下命令:
sudo su
命令提示符将变为“#”,表示终端会话具有root权限。
选择#1。 添加一个initscript
在/etc/init.d/myscript
创建一个新脚本:
vi /etc/init.d/myscript
(显然它不必被称为“myscript”。)在这个脚本中,做任何你想做的事情。 也许只是运行你提到的脚本:
#!/bin/sh /path/to/my/script.sh
使其可执行:
chmod ugo+x /etc/init.d/myscript
配置init系统在启动时运行这个脚本:
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
BTW:
如果你可以编辑你的crontab (crontab -e)
并且创建一个这样的条目,你不需要是root的:
@reboot /path/to/script.sh
这样,你可以像普通用户一样运行它。 @reboot只是意味着它在计算机启动时运行(不一定只是在重新启动时)。