在Ubuntu 17.04中启用一项新服务

我用这个post中的build议答案在我的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 

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

其次,在创build服务文件之后,您将运行systemct daemon-reload以通知systemd您的新创build的文件。 确保使用restorecon -RFvv /etc/systemd/system恢复了SELinux文件上下文

更新之后,答案是显而易见的。

 [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