Systemd服务集成Golang

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。

Systemd 默认从目录/etc/systemd/system/读取配置文件。里面存放的大部分文件都是符号链接,它们指向目录/usr/lib/systemd/system/,真正的配置文件(以 .service 结尾的文件)存放在那个目录。

我们可以将自定义程序注册为systemd service进程管理交给系统管理,可以方便启动停止,也可以实现服务异常退出重启,开机自启动,减少自定义程序服务管理的时间消耗。

Systemd启停命令(以 web1 为例)

1.开机启动
systemctl enable web1
2.启动服务
systemctl start web1
3.服务状态查看
systemctl status web1
4.停止服务
终止正在运行的服务
systemctl stop web1
如 stop 无响应则使用 kill 强制终止
systemctl kill web1
5.重启服务
systemctl restart web1

Golang集成到Systemd

Service文件主要包含三个部分,分别是:[Unit]、[Service]、[Install] ,下面使用golang web1 为例,新建文件web1.service

[Unit]
Description=web1

[Service]
Type=simple
Restart=always
RestartSec=5s
ExecStart=/home/web/web1
WorkingDirectory=/home/web/

[Install]
WantedBy=multi-user.target

ExecStart是go可执行文件的路径
WorkingDirectory要注意,如果程序中使用了相对路径来加载一些配置文件,如果在Service中没有配置WorkingDirectory,默认是根路径,所以配置文件就从根路径来寻找,会造成一些意想不到的情况

保存文件后可创建软链接到 /lib/systemd/system

ln -s /home/web/web1.service /lib/systemd/system/web1.service
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇