2017-03-24 3 views
1

Nous avons un .conf fichier nommé-api.conf privé à l'emplacement /etc/init, donc mon emplacement du fichier est - /etc/init/private-api.confUpstart à systemd

Le contenu de mon dossier est comme suit -

# start when server starts 
start on runlevel [23456] 
# Stop when server shuts down/reboots 
stop on shutdown 

#Respawn the process if it crashes 
#If it respawns more than 10 times in 5 seconds stop 
respawn 
respawn limit 10 5 

#expect fork 

script 
    cd /home/ubuntu/private-api && exec java -jar -Dspring.profiles.active=stage private-api-SNAPSHOT.jar > private-api.log 2>&1 
end script 

La prochaine commande que je dois tirer est -

sudo initctl reload-configuration 

Après que je suis censé exécuter le service, en utilisant la commande suivante -

service private-api start/stop/restart/status 

Je reçois l'erreur suivante quand je fais-
initctl: Impossible de se connecter à Upstart: Impossible de se connecter à socket/com/ubuntu/arriviste: Connection refused

J'ai trouvé que dans Ubuntu 16.04 arrivistes ne fonctionnent pas et sont passés à systemd maintenant,
et que le fichier Systemd doit être à l'emplacement - /etc/systemd/system, le fil e l'extension .service
Après quoi exécuter le Systemd suivant 2 commandes doivent être tiré -
1. sudo systemctl daemon-reload
2. sudo systemctl start xyz.service

Je parle les liens suivants -
1. https://wiki.ubuntu.com/SystemdForUpstartUsers
2 Voici ce que j'ai réalisé jusqu'à présent en utilisant les références ci-dessus -

[Unit] 
Description=Upstart for Private API 
After=network.target network-online.target 
Wants=network-online.target 

[Service] 
User=root 
WorkingDirectory=/home/ubuntu/private-api 
ExecStart=/usr/bin/java -classpath home/ubuntu/private-api/private-api-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=stage > home/ubuntu/private-api/private-api.log 2>&1 
SuccessExitStatus=143 
Restart=on-failure 
RestartSec=120s 

[Install] 
WantedBy=multi-user.target 

Je rechargées mon service systemd -
sudo systemctl daemon-reload

Mais quand je vérifie l'état du service, je reçois des erreurs de chemin absolu -

sudo systemctl status private-api.service 

    Apr 05 08:48:56 ip-10-10-1-153 systemd[1]: [/etc/systemd/system/private-api.service:9] Executable path is not absolute, ignoring: ExecStart=/usr/bin/java -classpath /home/ubuntu/private/astro-private-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=dev > private.log 2>&1 
Apr 05 08:48:56 ip-10-10-1-153 systemd[1]: private-api.service: Service lacks both ExecStart= and ExecStop= setting. Refusing. 
Apr 05 08:49:07 ip-10-10-1-153 systemd[1]: [/etc/systemd/system/private-api.service:9] Executable path is not absolute, ignoring: ExecStart=/usr/bin/java -classpath /home/ubuntu/private/astro-private-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=dev > private.log 2>&1 
Apr 05 08:49:07 ip-10-10-1-153 systemd[1]: private-api.service: Service lacks both ExecStart= and ExecStop= setting. Refusing. 
Apr 05 08:51:40 ip-10-10-1-153 systemd[1]: [/etc/systemd/system/private-api.service:9] Executable path is not absolute, ignoring: ExecStart=/usr/bin/java -classpath /home/ubuntu/private/astro-private-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=dev > /home/ubuntu/private/private.log 2>&1 
Apr 05 08:51:40 ip-10-10-1-153 systemd[1]: private-api.service: Service lacks both ExecStart= and ExecStop= setting. Refusing. 
Apr 05 09:17:41 ip-10-10-1-153 systemd[1]: [/etc/systemd/system/private-api.service:9] Executable path is not absolute, ignoring: ExecStart=/usr/bin/java -classpath /home/ubuntu/private/astro-private-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=dev > /home/ubuntu/private/private.log 2>&1 
Apr 05 09:17:41 ip-10-10-1-153 systemd[1]: private-api.service: Service lacks both ExecStart= and ExecStop= setting. Refusing. 
Apr 05 09:17:59 ip-10-10-1-153 systemd[1]: [/etc/systemd/system/private-api.service:9] Executable path is not absolute, ignoring: ExecStart=/usr/bin/java -classpath /home/ubuntu/private/astro-private-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=dev > /home/ubuntu/private/private.log 2>&1 
Apr 05 09:17:59 ip-10-10-1-153 systemd[1]: private-api.service: Service lacks both ExecStart= and ExecStop= setting. Refusing. 


que quelqu'un peut me aider à convertir ma .conf actuelle arriviste scénario?

+0

FWIW, les pages de manuel. service et systemd.exec sont vraiment tout ce dont vous avez besoin. La documentation est assez complète et complète. –

+0

Salut, j'ai mis à jour ma question, pouvez-vous aider à trouver la faille dans mon service Systemd? Mon script "upstart" est également inclus dans la question. Merci :) –

Répondre

1

Vous avez déjà défini le WorkingDirectory, vous pouvez utiliser directement la commande de votre script.

ExecStart=/usr/bin/java -jar -Dspring.profiles.active=stage > private-api.log 2>&1 

Espérons que cela fonctionne.