【服务器】ubuntu 20 添加开机自启动

开机自启动

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

修改/etc/r.local

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

查看是否有/etc/rc.d/rc.local

ls -l /etc/rc.d/rc.local

我这边20这个版本的话,都没有这个文件。那就不管这个方式了

/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生效。

检查系统目录/lib/systemd/system/test.service

如果没有自己新建,文件内容为(如果文件存在本身是没有[Install]项的,需要自己添加进去)

vim /lib/systemd/system/test.service
# 编写内容
[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 添加自定义服务(开机自启动).

修改配置文件后需要重加载配置

sudo systemctl daemon-reload

创建test.sh

vim /home/test/test.sh
# 写入如下内容
#!/bin/bash

echo `date`,"ok" >>/tmp/test.log

赋予可执行权限

chmod +x /home/test/test.sh

设置开机启动

systemctl enable test.service

查看启动的状态

systemctl status test.service
root@rex:/home/rex# systemctl status test.service
● test.service - test
   Loaded: loaded (/lib/systemd/system/test.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2021-12-11 08:46:19 UTC; 35s ago
  Process: 967 ExecStart=/bin/bash /home/test/test.sh #执行的内容是脚本test.sh中的内容,其中包括它的绝对地址 (code=exited, status=0/SUCCESS)

Dec 11 08:46:19 rex systemd[1]: Starting test...
Dec 11 08:46:19 rex systemd[1]: Started test.
# 查看文件是否写入
root@rex:/tmp# cat test.log 
Sat Dec 11 08:46:19 UTC 2021,ok

关闭开机启动

systemctl disable test.service
# 输出
root@rex:/tmp# systemctl disable test.service
Removed /etc/systemd/system/multi-user.target.wants/test.service.

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

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

https://m.linuxidc.com/Linux/2017-09/147178.htm.
https://www.cnblogs.com/yehui/p/9874866.html.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光不等仁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值