Muszę uruchomić jar java na serwerze, aby komunikować się między dwiema aplikacjami. Napisałem dwa skrypty powłoki, aby go uruchomić, ale po uruchomieniu tego skryptu nie mogę zamknąć / zakończyć procesu. Jeśli naciśnę ctrl+ Club zamknę konsolę, serwer wyłączy się. Czy ktoś mógłby mi pomóc, jak zmodyfikować ten skrypt, aby działał jak normalny serwer?
#!/bin/sh
java -jar /web/server.jar
echo $!
#> startupApp.pid
shell
unix
executable-jar
Bernad Ali
źródło
źródło
nohup
powinno zawsze być połączone z jawnym przekierowaniem stdout i stderr - w przeciwnym razie nie uzyskasz kontroli nad tym, gdzie trafiają dzienniki, i skończysz z brzydkimnohup.out
utworzeniem w dowolnym katalogu, z którego ten skrypt zostanie wywołany.Systemd który obecnie działa w większości dystrybucji
Krok 1:
Znajdź swoje usługi zdefiniowane przez użytkownika, w których moja była
/usr/lib/systemd/system/
Krok 2:
Utwórz plik tekstowy, nazwij go ulubionym edytorem tekstu
whatever_you_want.service
Krok 3:
Umieść następujący szablon do pliku
whatever_you_want.service
Krok 4:
Uruchom usługę
jako superużytkownik
źródło
Jeśli używasz Ubuntu i masz „Upstart” ( http://upstart.ubuntu.com/ ), możesz spróbować tego:
Stwórz
/var/init/yourservice.conf
z następującą treścią
Teraz możesz wydawać polecenia
service yourservice start
iservice yourservice stop
. Możesz ogonić,/var/log/yourservice.log
aby sprawdzić, czy działa.Jeśli chcesz po prostu uruchomić jar z konsoli bez zapychania okna konsoli, możesz po prostu zrobić:
źródło
java -jar /web/server.jar > /var/log/yourservice.log 2>&1 &
Uruchom w tle i dodaj dzienniki do pliku dziennika, korzystając z:
źródło