systemd – golang app的服务文件

前端之家收集整理的这篇文章主要介绍了systemd – golang app的服务文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我写了一个golang应用程序,我希望每当我的服务器重新启动时都会被systemd初始化.

这是服务文件: –

[Unit]
Description=golang wiki initialization

[Service]
Type=forking
PIDFile=/tmp/gowiki.pid-3030
User=root
Group=root
WorkingDirectory=/var/www
ExecStart=/bin/bash -c 'daemonize -o stdout.log -e stderr.log /var/www/wiki'

[Install]
WantedBy=multi-user.target

每当我重新启动服务器时,它似乎运行良好,但当我在终端手动启动或重新启动gowiki时,我仍然遇到轻微的烦恼问题: –

systemctl start gowiki

要么

systemctl restart gowiki

这确实让我的gowiki进程运行;但是,在我执行我的systemctl start gowiki命令后,我被冻结在我的终端中,并且在我手动强制执行Ctrl-C之前,命令似乎没有退出.

我造成这个问题的错误是什么?

这很有效.
[Unit]
Description=golang wiki initialization

[Service]
PIDFile=/tmp/gowiki.pid-4040
User=root
Group=root
WorkingDirectory=/var/www
ExecStart=/bin/bash -c '/var/www/wiki'

[Install]
WantedBy=multi-user.target

因为Type = forking服务期望父服务在服务实际启动之前退出.如果父节点永不退出,则systemctl start将不会返回提示,因为它不认为它已完成执行.

猜你在找的Go相关文章