Linux Ubuntu 20.04 —添加开机启动(服务/脚本)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Ubuntu 20.04 —添加开机启动(服务/脚本)相关的知识,希望对你有一定的参考价值。

参考技术A

本文章向大家介绍Linux Ubuntu 20.04 —添加开机启动(服务/脚本),主要包括Linux Ubuntu 20.04 —添加开机启动(服务/脚本)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
系统启动时需要加载的配置文件

一、修改开机启动文件:/etc/rc.local(或者/etc/rc.d/rc.local)

二、自己写一个shell脚本
将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。
三、通过chkconfig命令设置

四、自定义服务文件,添加到系统服务,通过Systemctl管理
1.写服务文件:如nginx.service、redis.service、supervisord.service

2.文件保存在目录下:以754的权限。目录路径:/usr/lib/systemd/system。如上面的supervisord.service文件放在这个目录下面。

3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload

4.其他命令

5.服务文件示例:

ubuntu自定义一个service制作开机自启脚本,nacos开机自启

Ubuntu没有自带其他linux版本自带的rc.local文件的开机自启动方法,所以要自己生成rc.local文件,其实就是自定义一个service服务

就像大家平时使用的service

service xxx start		# 尝试手动启动服务,看是否能正常运行
service xxx status		# 查看服务运行状态
service xxx stop		# 手动停止服务

第一步:编写service服务

sudo vim /etc/systemd/system/myselfTest.service # 编写service服务

myselfTest:文件名,可随意设置。
myselfTest.service文件内容

这里我以设置nacos服务开机自启为例

[Unit]
# 描述,随你怎么写
Description=Cclient desktop virtualization service
After=network.target

# 这里是关键
[Service]
# 后台运行模式,服务类型,具体可以自行百度,设置成自己想要的
Type=forking
# 所属用户
#User=szyd
# 所属组
#Group=szyd
# 重启
#Restart=always
TimeoutSec=0
# 配置重新启动服务之前的睡眠时间,重启频率,比如某次异常后,等待5(s)再进行启动,默认值0.1(s)
#RestartSec=60
# 这是服务运行的具体执行命令,可执行执行脚本的绝对路径,即对应的service start/stop/reload
ExecStart=/home/ubuntu/installer/nacos/bin/startup.sh -m standalone
ExecReload=/home/ubuntu/installer/nacos/bin/shutdown.sh
ExecStop=/home/ubuntu/installer/nacos/bin/shutdown.sh
[Install]
# 这里你没太大要求可以不管
WantedBy=multi-user.target

Type=forking,我这里的理解是通过ExecStart启动脚本后成功了,本身的myselfTest这个服务还会一直挂在后台,通过service myselfTest status可以看到active状态,而Type=simple则在ExecStart启动成功之后,就直接推出了,所以看myselfTest服务会是inactive状态.

在这里插入图片描述

关于Type=forking想进一步了解的话,可以看一下大佬的博客
https://www.junmajinlong.com/linux/systemd/service_2/

第二步:编写shell脚本

下面是个假脚本,就是上面service中要执行的脚本,大家自己写就行了
在这里插入图片描述
nacos的话这里还要注意一点,在startup.sh脚本中要把jdk变量设置为绝对路径
在这里插入图片描述

第三步:设置为自启动服务

Ubuntu18.04版本之后,就采用了systemctl来控制开机自启动服务

sudo systemctl daemon-reload	#重新加载service服务
sudo systemctl enable myselfTest.service		# 启用服务
sudo systemctl is-enabled myselfTest.service		# 查看启用状态
service myselfTest start		# 尝试手动启动服务,看是否能正常运行
service myselfTest status		# 查看服务运行状态
service myselfTest stop		# 手动停止服务

启动成功

以上是关于Linux Ubuntu 20.04 —添加开机启动(服务/脚本)的主要内容,如果未能解决你的问题,请参考以下文章

关于不同系统(ubuntu)下自启动服务的方式

Linux Ubuntu 20.04 —添加开机启动(服务/脚本)

开机自启脚本

Ubuntu20.04开机运行自定义脚本

Ubuntu 18.04添加开机自启

Ubuntu20.04配置开机自启动脚本