systemctl的service模板

/etc/systemd/system/xxxx.service

[Unit]
Description={{service_name}} Service
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
User={{rio_user|default('root')}}
Group={{rio_group|default('root')}}
Type={{systemd_type | default('simple')}}
EnvironmentFile={{rio_env_file}}
WorkingDirectory={{ work_dir }}
ExecStart={{ exec_start }}
Restart=on-failure
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

redis 启动

cat > /etc/systemd/system/redis.service << 'EOF'
[Unit]
Description=redis
After=network.target

[Service]
Type=forking
#PIDFile=/data/solution/redis/pidfile/redis.pid
WorkingDirectory=/data/solution/redis
ExecStart=/data/solution/redis/redis-server /data/solution/redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
Restart=always
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

redis_watch_proxy

cat > /etc/systemd/system/redis-watch-proxy.service << 'EOF'
[Unit]
Description=redis-watch-proxy Service
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
User=root
Group=root
Type=simple
WorkingDirectory=/data/solution/redis-watch-proxy
ExecStart=/data/solution/redis-watch-proxy/redis-watch-proxy
Restart=always
RestartSec=5
LimitNOFILE=65536
LimitNPROC=infinity
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target
EOF

apigate

cat > /etc/systemd/system/apigate.service << 'EOF'
[Unit]
Description=apigate Service
After=network-online.target
Wants=network-online.target
Requires=redis.service            
Requires=redis-watch-proxy.service  

[Service]
User=root
Group=root
Type=simple
WorkingDirectory=/data/solution/apigate
ExecStart=/data/solution/apigate/bin/node \
          /data/solution/apigate/proxy.js \
          --max_old_space_size=8192 \
          --max_semi_space_size=64
Restart=always
RestartSec=5
LimitNOFILE=655360
LimitNPROC=infinity
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target
EOF

filebeat

cat > /etc/systemd/system/filebeat.service << 'EOF'
[Unit]
Description=filebeat Service

[Service]
User=root
Group=root
Type=simple
WorkingDirectory=/data/filebeat
ExecStart=/data/filebeat/bin/filebeat_new \
         -c /data/filebeat/etc/filebeat_new.yml \
         -path.home /data/filebeat \
         -path.config /data/filebeat/etc \
         -path.data /data/filebeat/data \
         -path.logs /data/filebeat/log
Restart=always
RestartSec=5
LimitNOFILE=65536
LimitNPROC=infinity
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target
EOF

metricbeat

cat > /etc/systemd/system/metricbeat.service << 'EOF'
[Unit]
Description=metricbeat Service

[Service]
User=root
Group=root
Type=simple
WorkingDirectory=/data/metricbeat
ExecStart=/data/metricbeat/metricbeat 
Restart=always
RestartSec=5
LimitNOFILE=65536
LimitNPROC=infinity
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable redis redis-watch-proxy apigate filebeat metricbeat
systemctl start redis redis-watch-proxy apigate filebeat metricbeat

相关参数

[Unit]                   服务的说明  
Description=             描述服务
Documentation=           文档地址
Requires=                当前 Unit 依赖的其他 Unit
Wants=                   与当前 Unit 配合的其他 Unit
BindsTo=                 与 Requires 类似,其指定的 Unit 如果退出,则当前 Unit 也将停止运行
Before=                  该字段指定的 Unit 要启动,那么必须在当前 Unit 之后启动
After=                   该字段指定的 Unit 要启动,那么必须在当前 Unit 之前启动
Conflicts=               该字段指定的 Unit 不能与当前 Unit 同时启动


[Service]                服务运行参数的设置
Environment=             设置环境变量
Type=forking             是后台运行的形式
ExecStartPre=            启动当前服务之前执行的命令  
ExecStart=               服务的具体运行命令
ExecStartPost=           启动当前服务之后执行的命令
ExecReload=              重启命令
ExecStop=                停止命令
ExecStopPost=            停止当前服务之后执行的命令
RestartSec=              自动重启当前服务间隔的秒数
Restart=                 定义何种情况 systemd 会自动重启当前服务,可能的值包括 always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
TimeoutSec               定义 systemd 停止当前服务之前等待的秒数
# [Service]的启动、重启、停止命令全部要求使用绝对路径  

[Install]
WantedBy=                值为一个或多个 Target,当前 Unit 被 enable 时,符号链接放到 /etc/systemd/system/ 目录下面
#                        以 Target+ .wants 后缀构成的子目录中
RequireBy=
Alias=                   当前 Unit 可用于启动的别名
Also=                    当前 Unit 被 enable 时,激活该字段指定的 Unit
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值