systemd-service

Unit

选项 | 描述

  • | -
    Description | 单位的有意义的描述。例如,该文本显示在systemctl status命令的输出中。
    Documentation | 提供引用该单元文档的URI列表。
    After | 定义单位启动的顺序。只有在中指定的单元处于After活动状态后,该单元才会启动。与不同Requires,After不会显式激活指定的单位。该Before选项的功能与之相反After。
    Requires | 配置对其他单元的依赖性。列出Requires的单元与该单元一起被激活。如果任何必需的单元无法启动,则不会激活该单元。
    Wants | 配置比弱的依赖性Requires。如果列出的任何单元均未成功启动,则对单元激活没有影响。这是建立自定义单位依赖关系的推荐方法。
    Conflicts | 配置负相关性,与相反Requires。

Service

选项 | 描述

  • | -
    Type | 配置影响的功能ExecStart和相关选项的单元流程启动类型。之一:simple–默认值。开始ExecStart的过程是服务的主要过程。forking–以该进程开头ExecStart的子进程成为服务的主要进程。启动完成后,父进程退出。oneshot–此类型类似于simple,但是在启动后续单元之前,该过程将退出。dbus–此类型类似于simple,但是随后的单元仅在主过程获得D-Bus名称后才启动。notify–此类型类似于simple,但是仅在通过sd_notify()函数发送通知消息后,后续单元才启动。idle–与相似simple,服务二进制文件的实际执行被延迟到所有作业完成为止,这避免了将状态输出与服务的shell输出混合。
    ExecStart | 指定启动设备时要执行的命令或脚本。ExecStartPre并ExecStartPost指定要在之前和之后执行的自定义命令ExecStart。Type=oneshot支持指定多个自定义命令,然后依次执行。
    ExecStop | 指定设备停止时要执行的命令或脚本。
    ExecReload | 指定重新加载单元时要执行的命令或脚本。
    Restart | 启用此选项后,该服务将在其进程退出后重新启动,但systemctl命令会干净停止。
    RemainAfterExit | 如果设置为True,则即使退出了所有进程,该服务也被认为是活动的。默认值为False。如果Type=oneshot已配置,此选项特别有用。
    EnvironmentFile | 从文本文件读取环境变量

Install

选项 | 描述

  • | -
    Alias | 提供以空格分隔的其他名称列表。systemctl除之外的大多数命令systemctl enable都可以使用别名代替实际的单元名称。
    RequiredBy | 取决于单位的单位列表。当本机启动时,单位中列出RequiredBy增益的Require单位的依赖。
    WantedBy | 弱依赖于单位的单位列表。当本机启动时,单位中列出WantedBy增益的Want单位的依赖。
    Also | 指定要与该单元一起安装或卸载的单元的列表。
    DefaultInstance | 仅限于实例化单元,此选项指定启用该单元的默认实例

nginx服务

vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

mysql服务

vim /etc/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

go服务

启动脚本
vim /data/app/xxx/start.sh

#!/bin/bash
export XXX="xxx"
cd /data/app/xxx
./xxx

vim /usr/lib/systemd/system/xxx.service

[Unit]
Description=xxx
After=network.target

[Service]
Type=simple
ExecStart=/data/app/xxx/start.sh
ExecStop=/bin/kill -15 $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

注:配置完成后执行以下命令重载systemd

systemctl daemon-reload
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuxingge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值