habilitando um novo serviço no Ubuntu 17.04

1

Eu usei a resposta sugerida deste post para criar um serviço personalizado no meu ambiente do Ubuntu 17.04: Instalando o gitblit GO como serviço no Ubuntu Server 16.04

Infelizmente quando acerto

sudo systemctl enable gitblit_server.service

Eu recebo

Failed to enable unit: File gitblit_server.service: Invalid argument

como um erro.

Alguma ideia do que estou fazendo errado?

Atualização:

resultado para 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

conteúdo do meu arquivo 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
    
por MeMeMax 01.09.2017 / 15:37

1 resposta

1

Você está usando a resposta errada para criar serviços personalizados. Para começar, os arquivos de serviço personalizados não devem ser colocados dentro de /lib/systemd/system , em vez de usar /etc/systemd/system/your_custom_file.service .

Em segundo lugar, depois de criar o arquivo de serviço, você executaria systemct daemon-reload para notificar o systemd sobre o arquivo recém-criado. Certifique-se de ter restaurado o contexto do arquivo SELinux usando restorecon -RFvv /etc/systemd/system

Após a atualização, a resposta é óbvia.

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

Aqui, a linha que inicia com /opt/gitblit/.. é tratada como uma única linha e não faz parte da diretiva ExecStart que está causando o erro. Você pode simplesmente corrigi-lo usando uma barra invertida da seguinte forma:

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

Finalmente execute:

systemctl daemon-reload && systemctl enable gitblit_server.service

    
por 01.09.2017 / 16:22