我想在系统启动时找到一个脚本,并寻找最好的方法,我的方法是:
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
它运作良好,但只是想知道是否有另一种更好的方法。
答案 0 :(得分:1)
有两种方法可以实现此目的,但您需要root权限才能实现以下任何目标。要获得root权限,请打开终端并运行命令:
sudo su
,命令提示符将变为“#”,表示终端会话具有root权限。
备选方案#1。添加intscript
在/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
顺便说一句:
如果您可以编辑crontab (crontab -e)
并创建如下条目,则无需成为root用户:
@reboot /path/to/script.sh
这样,您就可以以普通用户身份运行它。 @reboot只是意味着它在计算机启动时运行(不一定只是在它重新启动时)。