yanxi

Centos 加入开机自启动
Centos 加入开机自启动        ...
扫描右侧二维码阅读全文
01
2019/02

Centos 加入开机自启动

Centos 加入开机自启动

        从CentOS7 Linux开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管理器。),管理开机自启动的命令也从chkconfig改为了systemctl,由systemctl一个命令代替了CentOS7以前系统中的service和chkconfig两个命令。
        系统服务的脚本也从传统的路径的/etc/init.d(/etc/rc.d/init.d/),改到了/usr/lib/systemd(除此之外还有/etc/systemd/system),需要自启动运行的程序,一般存在这个系统服务目录下,即:/usr/lib/systemd/system目录,每一个服务以“服务名.service”结尾,该文件的内容一般分为3部分:即[Unit]、[Service]和[Install]。

方法一:chkconfig

1、添加文件到/etc/rc.d/init.d目录中。
[/etc/rc.d/init.d]#cat fb
#!/bin/bash
#chkconfig:345 90 90  //此行的345参数表示,在哪些运行级别启动,启动序号(S90);关闭序号(K90)
#description: start fb  //此行必写,描述服务.
/fb/startup.sh
2、文件加入chkconfig
#chkconfig --add fb
#chkconfig
fb              0:off   1:off   2:off   3:on    4:on    5:on    6:off

方法二:rc.local

1、启动shell加入rc.local文件中 centos7 加入后,程序也不能自启动.

#cat /etc/rc.local
  /usr/bin/bash  /fb/startup.sh

机器重启,也不能自动运行程序。
查看rc-local.service状态,发现服务并没有启动。

#systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility
  Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
  Active: inactive (dead)
  Condition: start condition failed at Fri 2019-01-25 10:02:15 CST; 2s ago
          ConditionFileIsExecutable=/etc/rc.d/rc.local was not met

查看rc.local文件,发现一段。
“Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure”
需要有可执行权限

chmod +x /etc/rc.d/rc.local

开启服务

systemctl start rc-local.service

重启Ok
注意:
由于在执行rc.local脚本时,PATH环境变量未全部初始化,目录/usr/local/bin/ 需在执行/etc/profile 后才被添加到环境变量PATH中。
解决方法:
在 /etc/rc.local 执行 /usr/local/bin/ 目录中的命令需要使用绝对路径。

方法三:systemd

/lib/systemd/system/filebrowser.service   #<==系统服务目录
[root@localhost fb]# cat filebrowser.service
[Unit]
Description=File Browser
After=network.target  //在network.target启动后启动本服务。 “Before”

[Service]
Type=forking  #<==后台运行。
ExecStart=/fb/filebrowser -d /fb/filebrowser.db

[Install]
WantedBy=multi-user.target  //这里为设置多用户级别。

"ExecStart="将文件改为运行命令,更改完后需要输入 systemctl daemon-reload

运行:systemctl start filebrowser.service
停止运行:systemctl stop filebrowser.service
开机启动:systemctl enable filebrowser.service
取消开机启动:systemctl disable filebrowser.service
查看运行状态:systemctl status filebrowser.service

Last modification:February 1st, 2019 at 02:00 pm
If you think my article is useful to you, please feel free to appreciate

Comment here is closed