Ubuntu

在 ubuntu 17.04 中啟用新服務

  • September 1, 2017

我使用這篇文章中的建議答案在我的 ubuntu 17.04 環境中創建自定義服務:在 Ubuntu Server 16.04 中將 gitblit GO 作為服務安裝

不幸的是,當我打

sudo systemctl enable 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

您使用錯誤的答案來創建自定義服務。首先,不應將自定義服務文件放在/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

引用自:https://serverfault.com/questions/871671