ubuntu20.10系统自动配置开机启动脚本

ubuntu作为服务器使用时,常常需要在机器重启时能自动启动我们开发的服务。有时候我们想要脚本开机自动运行,那么就需要设置开机自启动脚本。网上有很多种解决方案,基本上是分为三种:

1、修改/etc/r.local

我在ubuntu18和ubuntu20.10都亲测 /etc/rc.d/rc.local开机启动脚本不生效。主要有以下步骤:

  1. 查看是否有/etc/rc.d/rc.local
ls -l /etc/rc.d/rc.local
-rw-r--r-- 1 root root 473 Sep 14 02:19 /etc/rc.d/rc.local
#如上信息显示该文件没有执行权限,需要为/etc/rc.d/rc.local添加可执行权限。
 # 修改权限
chmod +x /etc/rc.d/rc.local
  1. 编辑rc.local,添加需要开机启动的任务
#!/bin/sh -e
#
#rc.local
#
#This script is executed at the end of each multiuser runlevel.
#Make sure that the script will "exit 0" on success or any other
#value on error.
#
#In order to enable or disable this script just change the execution
#bits.
#
#By default this script does nothing.
 
exit 0

注意: 一定要将命令添加在exit 0之前。里面可以直接写命令或者执行Shell脚本文件sh。
但是很容易出现不启动的问题,可以在执行命令中加入测试语句,但是也很容易执行不成功,执行不成功的话,可以参照这篇文章测试CentOS 7中/etc/rc.local开机启动脚本不生效怎么办?.。

2、/lib/systemd/system增加开机启动服务

通常在网上现有的方法,主要是通过修改/etc/init.d,最后修改权限生成。但 Ubuntu 18.04 不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。不同于以往的版本,ubuntu18.04默认不带/etc/rc.local文件,我们需要通过配置来让service生效。

  1. 检查系统目录/lib/systemd/system/test.service,如果没有自己新建,文件内容为(如果文件存在本身是没有[Install]项的,需要自己添加进去)
vim /lib/systemd/system/test.service
  1. 加入内容信息,要启动的脚本文件或者命令
[Unit]
Description=test
Requires=network-online.target #若需要联网后启动的话,则需要加入该参数
After=network-online.target #若需要联网后启动的话,则需要加入该参数

[Service]
Type=forking
ExecStart=/bin/bash /home/test/test.sh #执行的内容是脚本test.sh中的内容,其中包括它的绝对地址

[Install]
WantedBy=multi-user.target

此处可以自行增加一个service在该路径下,根据该路径下的格式,自行定制即可。详细参数信息可以见下Systemd 添加自定义服务(开机自启动).

  1. 修改配置文件后需要重加载配置
sudo systemctl daemon-reload
  1. 创建test.sh
vim /home/test/test.sh
#!/bin/bash

echo `date`,"ok" >>/tmp/test.log
  1. 赋予可执行权限
chmod +x /home/test/test.sh
  1. 设置开机启动
systemctl enable test.service
  1. 查看启动的状态
systemctl status test.service

3、update-rc.d增加开机启动服务

该方法主要是适用于/etc/init.d的服务的情况,现今低版本的linux主要是用它。现阶段不在赘述。下面给到链接。仅供参考。

  1. https://m.linuxidc.com/Linux/2017-09/147178.htm.
  2. https://www.cnblogs.com/yehui/p/9874866.html.
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页