From c02391ca113ca42bd2f7ea31d6a7b0bc78c5741d Mon Sep 17 00:00:00 2001 From: huty Date: Fri, 10 May 2024 15:32:00 +0000 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=B4=E6=98=8E=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=9B=E6=96=B0=E5=A2=9EDocker=E3=80=81Redis?= =?UTF-8?q?=E3=80=81Tomcat=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- description/description.service | 58 +++++++++++++++++++++++++++++++++ examples/docker.service | 35 ++++++++++++++++++++ examples/redis.service | 15 +++++++++ examples/tomcat.service | 15 +++++++++ 4 files changed, 123 insertions(+) create mode 100644 description/description.service create mode 100644 examples/docker.service create mode 100644 examples/redis.service create mode 100644 examples/tomcat.service diff --git a/description/description.service b/description/description.service new file mode 100644 index 0000000..d267f03 --- /dev/null +++ b/description/description.service @@ -0,0 +1,58 @@ +# 定义 Unit 的元数据,以及配置与其他 Unit 的关系 +[Unit] +## 当前 service 文件的描述 +Description=This is description +## 文档地址 +Documentation=https://wiki.hty1024.com +## 当前 Service 依赖的其他 Service,如果没有会启动失败,多个时用空格间隔 +Requires=a.target b.service +## 当前 Service 依赖的其他 Service,如果没有不会启动失败,多个时用空格间隔 +Wants=c.service +## 如果这些 Service 停止,则当前 Service 停止,多个时用空格间隔 +BindsTo=d.target +## 这些 Service 不能和当前 Service 同时启动,多个时用空格间隔 +Conflicts=e.target +## 这些 Service 需要在当前 Service 之后启动,多个时用空格间隔 +Before=f.target +## 这些 Service 需要在当前 Service 之前启动,多个时用空格间隔 +After=g.target +## 当前 Service 必须满足的条件,如果没有不会启动,多个时用空格间隔 +Condition=h.target +## 当前 Service 必须满足的条件,如果没有会启动失败,多个时用空格间隔 +Assert=i.target + +# 定义 Service 的配置 +[Service] +## 当前 Service 的类型,可选值:simple:启动主进程(默认);forking:启动子进程;oneshot:一次性进程;dbus:D-Bus进程;notify:当前Service启动后会通知Systemd;idle:当其他任务执行完毕后,当前Service才会启动 +Type=forking +## 启动 Service 的命令 +ExecStart= +## 启动当前 Service 之前执行的命令 +ExecStartPre= +## 启动当前 Service 之后执行的命令 +ExecStartPost= +## 重启当前 Service 的命令 +ExecReload= +## 停止当前 Service 的命令 +ExecStop= +## 停止当前 Service 之后执行的命令 +ExecStopPost= +## 自动重启当前 Service 间隔秒数 +RestartSec= +## 当前 Service 的重启规则,可选值:always:总是重启;on-success:成功时重启;on-failure:失败时重启;on-abnormal:不正常时重启;on-abort:中断时重启;on-watchdog:指定监察器 +Restart= +## 停止当前 Service 之前等待的秒数 +TimeoutSec= +## 指定环境变量 +Environment= + +# 定义如何启动,以及是否开机启动 +[Install] +## 当前 Service 的别名 +Alias= +## 当前 Service 需要的其他 Service,多个时用空格间隔 +WangtedBy= +## 当前 Service 依赖的其他 Service,多个时用空格间隔 +RequiredBy= +## 当前 Service 关联的其他 Service,多个时用空格间隔 +Also= diff --git a/examples/docker.service b/examples/docker.service new file mode 100644 index 0000000..53ee70a --- /dev/null +++ b/examples/docker.service @@ -0,0 +1,35 @@ +[Unit] +Description=Docker Application Container Engine +Documentation=https://docs.docker.com +After=network-online.target firewalld.service +Wants=network-online.target +Requires=docker.socket + +[Service] +Type=notify +Environment=PATH=/opt/docker/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +# the default is not to use systemd for cgroups because the delegate issues still +# exists and systemd currently does not support the cgroup feature set required +# for containers run by docker +ExecStart=/opt/docker/bin/dockerd -H unix://var/run/docker.sock +ExecReload=/bin/kill -s HUP +# Having non-zero Limit*s causes performance problems due to accounting overhead +# in the kernel. We recommend using cgroups to do container-local accounting. +LimitNOFILE=infinity +LimitNPROC=infinity +LimitCORE=infinity +# Uncomment TasksMax if your systemd version supports it. +# Only systemd 226 and above support this version. +#TasksMax=infinity +TimeoutStartSec=0 +# set delegate yes so that systemd does not reset the cgroups of docker containers +Delegate=yes +# kill only the docker process, not all processes in the cgroup +KillMode=process +# restart the docker process if it exits prematurely +Restart=on-failure +StartLimitBurst=3 +StartLimitInterval=60s + +[Install] +WantedBy=multi-user.target diff --git a/examples/redis.service b/examples/redis.service new file mode 100644 index 0000000..8527ee8 --- /dev/null +++ b/examples/redis.service @@ -0,0 +1,15 @@ +[Unit] +Description=Redis Server +Documentation=https://redis.io +After=network-online.target firewalld.service +Wants=network-online.target + +[Service] +Type=forking +ExecStart=/opt/redis/bin/redis-server /opt/redis/redis.conf +ExecReload=/opt/redis/bin/redis-server -s reload +ExecStop=/opt/redis/bin/redis-server -s stop +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/examples/tomcat.service b/examples/tomcat.service new file mode 100644 index 0000000..8b8280f --- /dev/null +++ b/examples/tomcat.service @@ -0,0 +1,15 @@ +[Unit] +Description=Apache Tomcat +Documentation=https://tomcat.apache.org +After=network-online.target firewalld.service +Wants=network-online.target + +[Service] +Type=forking +ExecStart=/opt/tomcat/apache-tomcat-9.0.89/bin/startup.sh +ExecReload=/opt/tomcat/apache-tomcat-9.0.89/bin/shutdown.sh & kill -9 $(ps aux | grep /opt/toomcat/apache-tomcat-9.0.89 | grep -v grep | awk '{print $2}' | tr -d ' ') & /opt/tomcat/apache-tomcat-9.0.89/bin/startup.sh +ExecStop=/opt/tomcat/apache-tomcat-9.0.89/bin/shutdown.sh +Restart=always + +[Install] +WantedBy=multi-user.target