From f64587723f5f2473637b15be1aa79f8b88f45f4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=99=E6=B2=9B=E5=A4=AA?= <1932644427@qq.com> Date: Sat, 22 Jun 2024 10:28:59 +0800 Subject: [PATCH] 0619 --- ...33\347\250\213\347\256\241\347\220\206.md" | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git "a/38\344\275\231\346\262\233\345\244\252/20240619\350\277\233\347\250\213\347\256\241\347\220\206.md" "b/38\344\275\231\346\262\233\345\244\252/20240619\350\277\233\347\250\213\347\256\241\347\220\206.md" index 3f308aa..99af4a4 100644 --- "a/38\344\275\231\346\262\233\345\244\252/20240619\350\277\233\347\250\213\347\256\241\347\220\206.md" +++ "b/38\344\275\231\346\262\233\345\244\252/20240619\350\277\233\347\250\213\347\256\241\347\220\206.md" @@ -51,3 +51,87 @@ - jobs - 查看所有后台进程 +## 服务管理 + +1. systemctl + - 启动 + - systemctl start 服务名 + - 停止 + - systemctl stop 服务名 + - 重启 + - systemctl restart 服务名 + - 查看 + - systemctl status 服务名 + - 重新加载配置文件 + - systemctl reload 服务名 +2. service + - 启动 + - service 服务名 start + - 停止 + - service 服务名 stop + - 重启 + - service 服务名 restart + - 查看 + - service 服务名 status + - 重新加载配置文件 + - service 服务名 reload + +## Linux添加自定义服务 + +1. 新建服务文件 + + - 扩展名为`xxx.servive`(xxx为服务名称) + + - ```sh + [Unit] + Description=服务描述 + After=服务依赖(再这些服务后启动本服务) + + [Service] + Type=服务类型 + ExecStart=启动命令 + ExecStop=终止命令 + ExecReload=重启命令 + + [Install] + WantedBy=服务安装设置 + + [Unit]中After的值一般是:network.target remote-fs.target nss-lookup.target + + [Service]中是主要内容 + Type的值有以下几个: + simple:这是默认的值,指定了ExecStart设置后,simple就是默认的Type设置除非指定Type。simple使用ExecStart创建的进程作为服务的主进程,在此设置下systemd会立即启动服务。 + forking:如果使用了这个值,则ExecStart的脚本启动后会调用fork()函数创建一个进程作为其启动的一部分。当初始化完成,父进程会退出。子进程会继续作为主进程执行。 + oneshot:类似simple,但是在systemd启动之前,进程就会退出。这是一次性的行为。可能还需要设置RemainAfterExit=yes,以便systemd认为j进程退出后仍然处于激活状态。 + dbus:也和simple很相似,该配置期待或设置一个name值,通过设置BusName=设置name即可。 + notify:同样地,与simple相似的配置。顾名思义,该设置会在守护进程启动的时候发送推送消息。 + + [Install]的WantedBy一般是multi-user.target + + [Unit] + Description=Redis-Server + After=network.target remote-fs.target nss-lookup.target + + [Service] + Type=forking + ExecStart=/opt/Redis-6.2.1/redis-server /root/RedisData/redis-conf.conf + ExecStop=kill -9 $(pidof redis-server) + ExecReload=kill -9 $(pidof redis-server) && /opt/Redis-6.2.1/redis-server /root/RedisData/redis-conf.conf + + [Install] + WantedBy=multi-user.target + ``` + + - `/usr/lib/systemd/system`目录 + +2. 启动、停止、重启服务 + +3. 启用/禁用开机自启 + + - ```sh + # 启用开机自启 + systemctl enable 服务名 + + # 禁用开机自启 + systemctl disable 服务名 + ``` -- Gitee