在linux上启动一个脚本的最好方法是什么?

我想开始一个脚本,当系统启动并寻找最佳方法时,我的方法是:

  • 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只是意味着它在计算机启动时运行(不一定只是在重新启动时)。