/etc/systemd/system
cartella:
[Unit]
Description=WSO2 IoT Message broker
[Service]
Environment="JAVA_HOME=/usr/lib/jvm/java-8-oracle"
Type=forking
ExecStart=/home/ubuntu/wso2iot-3.1.0/bin/broker.sh
[Install]
WantedBy=multi-user.target
Sto cercando di eseguire uno dei complessi di WSO2 IoT Server, ma non importa.
Quando lancio questo bash
script manualmente, viene caricato per molto tempo e rimane in modalità avviata, perché esegue qualcosa come un'applicazione del server Web che quindi prende una porta specifica.
Quando lancio questo servizio in questo modo:
sudo systemctl start myservice.service
Ci vuole molto tempo e poi dice:Start operation timed out. Terminating.
Devo fare in modo che questo servizio sia appena avviato per sempre finché non lo interromperò manualmente.
Cosa mi sono perso nel mio file di configurazione del servizio?
Risposta accettata:
Imposta il Type
del tuo script di servizio su simple
o oneshot
. A seconda del comportamento dello script di shell avviato.
- se lo script della shell esegue un ciclo infinito e non esce, imposta
Type
asimple
- altrimenti imposta
Type
aoneshot
Dopo aver apportato le modifiche, ricaricare la configurazione con systemctl daemon-reload
e avvia il tuo servizio.