Ubuntu
在 ubuntu 17.04 中啟用新服務
我使用這篇文章中的建議答案在我的 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