首页 > 服务器 > Ubuntu 16.04 systemctl服务脚本

作者:ghostry 发布时间:2016-10-28 浏览: 6540

转载注明出处: https://blog.1ge.fun/server/763.html

不多说,放几个例子先

cat /lib/systemd/system/aria2.service 
[Unit]
Description=LSB: Starts Aria2 Server
After=local-fs.target
After=remote-fs.target
After=network-online.target
Wants=network-online.target
Conflicts=shutdown.target

[Service]
Type=oneshot
Restart=no
TimeoutSec=1min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
User=momo
Group=momo
RemainAfterExit=yes
ExecStart=/mnt/data/bin/aria2.sh start
ExecStop=/mnt/data/bin/aria2.sh stop

[Install]
WantedBy=multi-user.target

Type=simple :(默认值) systemd认为该服务将立即启动。服务进程不会 fork 。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket 激活型。

cat /lib/systemd/system/xware.service 
[Unit]
Description=LSB: Starts Xware Server
After=local-fs.target
After=remote-fs.target
After=network-online.target
Wants=network-online.target
Conflicts=shutdown.target

[Service]
Type=oneshot
Restart=no
TimeoutSec=2min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/mnt/data/opt/Xware1.0.31/start.sh
ExecStop=/mnt/data/opt/Xware1.0.31/start.sh -s

[Install]
WantedBy=multi-user.target

Type=forking :systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便 systemd 能够跟踪服务的主进程。

cat /lib/systemd/system/seafile-server.service 
[Unit]
SourcePath=/etc/init.d/seafile-server
Description=LSB: Starts Seafile Server
After=local-fs.target
After=remote-fs.target
After=network-online.target
After=mysql.service
Wants=network-online.target
Conflicts=shutdown.target

[Service]
Type=oneshot
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/seafile-server start
ExecStop=/etc/init.d/seafile-server stop

[Install]
WantedBy=multi-user.target

Type=oneshot :这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。
Type=notify :与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。
Type=dbus :若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。
Type=idle :systemd会等待所有任务处理完成后,才开始执行 idle 类型的单元。其他行为与 Type=simple 类似。

详细解释

标签: server ubuntu

上一篇: 一个不错的代理软件tsocks
下一篇: Ubuntu最小安装kodi/xbmc媒体中心

添加新评论 »

*
*

欢迎评论!歡迎評論!Comments welcome!komentoj bonvenaj!댓글 오신 것을 환영합니다!
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :cold: :cryy: :cute: :shy: :sleep: :struggle: :tea: :yahou: