ubuntu自定义一个service制作开机自启脚本,nacos开机自启
Posted 好大的月亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 # 手动停止服务
启动成功
以上是关于ubuntu自定义一个service制作开机自启脚本,nacos开机自启的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu20.04设置开机自启脚本开机自启命令(ubuntu自启,ubuntu开机自启)rc(run command)(systemd)(/etc/rc.local)(开机启动原理)