2016-11-29 46 views
2

我想开始一个脚本我有当系统启动并寻找最好的方式的最好方式,我的方式是:什么是开始在系统启动时的脚本在Linux上

  • VI /等/ systemd /系统/ 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

它的工作不错,但只是WO如果有另一种更好的方法,那就去找。

+0

在基于systemd的环境中,服务是启动scritp/programs的最佳选择。请注意,您可以设置何时启动服务和添加依赖关系的其他参数。 –

回答

1

有几种方法可以实现这一点,但您需要以下权限的root权限。为了得到根,打开一个终端,运行命令:

sudo su 

和命令提示符将改变,表明终端会话具有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 

配置的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。用下面的内容

vi /etc/init/myjob.conf 

:添加一个暴发户工作

创建/etc/init/myjob.conf

description "my job" 
start on startup 
task 
exec /path/to/my/script.sh 

BTW:

你并不需要root权限,如果你可以编辑你的crontab (crontab -e)并创建如下条目:

@reboot /path/to/script.sh 

这样,您可以作为普通用户运行它。 @reboot只意味着它在计算机启动时运行(不一定只在重新启动时运行)。