ubuntu 20.04
ubuntu16.04 后版本不支持update-rc.d方式添加开机自启脚本,只能通过systemctl 命令添加,以下记录三种方式添加开机自启;
方式一:
使用rc-local.service
rc-local.service是系统自带的一个开机自启服务,20.04默认关闭
1.在终端下打开 rc-local.service文件
(base) root@zxm-29:/mnt/daemon# vim /lib/systemd/system/rc-local.service
# SPDX-License-Identifier: LGPL-2.1+
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
(base) root@zxm-29:/mnt/daemon#
在最后添加Install段
2.创建/etc/rc.local
ubuntu20.04默认不存在/etc/rc.local,需要自己创建,添加启动内容,自定义自己需要开机实现的功能
#!/bin/bash
# start jar by zhouxiaomin
nohup /mnt/XHLD/daemon.sh > /daemon.log 2>&1 &
注意:关于开机自启中涉及到的文件,都需要给可执行权限;
3.启动rc-local.service
systemctl enable rc-local.service(自启动)
systemctl start rc-local.service(启动)
systemctl status rc-local.service(状态)
(base) root@zxm-29:/mnt/daemon# systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/rc-local.service.d
└─debian.conf
Active: active (running) since Mon 2023-02-20 09:53:38 CST; 43min ago
Docs: man:systemd-rc-local-generator(8)
Process: 802435 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
Tasks: 85 (limit: 231629)
Memory: 2.3G
CGroup: /system.slice/rc-local.service
├─802436 /bin/sh /mnt/XHLD/daemon.sh
├─802441 java -jar -Duser.timezone=GMT+08 -Dfile.encoding=UTF-8 /mnt/XHLD/xinhuo-
└─804504 sleep 15
2月 20 09:53:38 xhkj-29 systemd[1]: Starting /etc/rc.local Compatibility...
2月 20 09:53:38 xhkj-29 systemd[1]: Started /etc/rc.local Compatibility.
(base) root@zxm-29:/mnt/daemon#
方式二:使用gnome-session-properties
这是Ubuntu自带的命令,可以在用户登陆时自动执行某个程序,在终端输入gnome-session-properties
方式三:自定义开机自启服务
除了使用系统自带的rc-local.service,可以自定义创建一些服务
1.创建service文件,可以放到/lib/systemd/system/目录下,如果自定义目录,最好做好说明
daemon.service
[Unit]
Description=ZXM
After=network.target
[Service]
ExecStart=/mnt/daemon/daemon.sh
[Install]
WantedBy=multi-user.target
Description是service文件的描述,随便填写
After表示服务的依赖关系
ExecStart 表示要启动的程序或脚本
WantedBy 表示该服务所属targe,multi-user.targe表示多用户命令行状态
2.启动服务
使用systemctl enable / start /lib/systemd/system/daemon.service启动服务
网友评论