在 ubuntu 17.04 中启用新服务

在 ubuntu 17.04 中启用新服务

我使用了这篇文章中建议的答案在我的 ubuntu 17.04 环境中创建了一个自定义服务:在 Ubuntu Server 16.04 中安装 gitblit GO 作为服务

不幸的是当我击中

sudo systemctl 启用 gitblit_server.service

我收到

无法启用单元:文件 gitblit_server.service:参数无效

為錯誤。

知道我做错了什么吗?


更新:

journalctl -xe 的结果

Sep 01 16:06:22 git-dmz01 sudo[7121]: msoadmin : TTY=pts/1 ; PWD=/etc/systemd/system ; USER=root ; COMMAND=/bin/systemctl enable gitblit_server.service
Sep 01 16:06:22 git-dmz01 sudo[7121]: pam_unix(sudo:session): session opened for user root by msoadmin(uid=0)
Sep 01 16:06:22 git-dmz01 systemd[1]: [/etc/systemd/system/gitblit_server.service:12] Missing '='.
Sep 01 16:06:22 git-dmz01 sudo[7121]: pam_unix(sudo:session): session closed for user root

我的文件 gitblit_server.service 的内容:

[Unit]
   Description=gitblit Server CVS
   After=network.target
[Service]
   User=msoadmin
   Type=simple
   WorkingDirectory=/opt/gitblit
   PIDFile=/var/run/gitblit.service.pid
   ExecStartPre=/opt/gitblit/java-proxy-config.sh
   ExecStart=/usr/bin/java -server -Xmx1024M -Djava.awt.headless=true -jar
   /opt/gitblit/gitblit.jar --baseFolder /opt/gitblit/data --dailyLogFile

[Install]
   WantedBy=multi-user.target

答案1

您使用错误的答案来创建自定义服务。首先,自定义服务文件不应放在其中,/lib/systemd/system 而应使用/etc/systemd/system/your_custom_file.service

其次,创建服务文件后,您需要运行以下命令systemct daemon-reload通知 systemd 有关您新创建的文件的信息。请确保您已使用以下命令恢复了 SELinux 文件上下文:restorecon -RFvv /etc/systemd/system

更新之后,答案就显而易见了。

[Service]
.....
....
ExecStart=/usr/bin/java -server -Xmx1024M -Djava.awt.headless=true -jar
   /opt/gitblit/gitblit.jar --baseFolder /opt/gitblit/data --dailyLogFile
....

这里,以 开头的行/opt/gitblit/..被视为一行,而不是ExecStart导致错误的指令的一部分。你可以简单地使用反斜杠来修复它,如下所示:

ExecStart=/usr/bin/java -server -Xmx1024M -Djava.awt.headless=true -jar \
   /opt/gitblit/gitblit.jar --baseFolder /opt/gitblit/data --dailyLogFile

最后运行:

systemctl daemon-reload && systemctl enable gitblit_server.service

相关内容