跳转至

Ubuntu18 开机启动

Ubuntu 16.10开始不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。 systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。 比如创建一个叫yujiannan的开机启动服务

  1. 创建服务配置文件

    vim /etc/systemd/system/yujiannan.service
    
    写入以下配置
    [Unit]
    Description=/etc/my_serverA.sh Compatibility
    ConditionPathExists=/etc/yujiannan.sh
    
    [Service]
    Type=forking
    ExecStart=/etc/yujiannan.sh start
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    SysVStartPriority=99
    
    [Install]
    WantedBy=multi-user.target
    
    其中关键的是[Service]中的/etc/yujiannan.sh start定义了要执行的脚本

  2. 创建服务执行脚本

    vim /etc/yujiannan.sh
    
    编辑内容

Warning

  • 第一行必须是#!/bin/sh否则会出现错误
  • 脚本最后必须exit 0,不然systemd会认为service启动失败

#!/bin/sh
echo "this shows yujiannan.sh is start onboot" > /usr/local/my_serverA.start.log
exit 0
给脚本加上执行权限
chmod +x /etc/yujiannan.sh
3. 设置开机启动
sudo systemctl enable yujiannan.service
4. 启动服务并查看状态
systemctl start yujiannan.service
systemctl status yujiannan.service

评论