"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

bash: pid eines java programms

wergor 06.05.2015 - 19:18 1700 4 Thread rating
Posts

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
ich rufe in einem script ein java programm auf und hätte gerne dessen pid um es später wieder killen zu können.
Code:
(java -jar MonitorSetup.jar & )

echo "pid:" "$!"
das resultat:
Code:
pid: 
was mache ich falsch?

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11899
Dank der runden Klammern () laeuft dein in diesen notierter Code in einer Subshell deiner (interaktiven) Shell. Die Shell-Variable $!, die du danach aufloesen willst, ist deshalb leer, weil du im Kontext der DANN relevanten (interaktiven) Shell schlicht noch gar keinen Background Process gehabt hast. Die Klammern einfach wegzulassen hilft:

Code:
colo@zealot:~ $ (sleep 1 & )
colo@zealot:~ $ echo ${!}

colo@zealot:~ $ sleep 1 &
[1] 26946
colo@zealot:~ $ echo ${!}
26946

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
danke :)

semteX

Risen from the banned
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14336
wenn du "mehr" machn willst (z.b. als service starten, ...) würd ich mir eventuell JSVC anschaun.

e: http://stackoverflow.com/questions/...aemon-with-jsvc

die offizielle jsvc seite is leider... etwas verstörend
Bearbeitet von semteX am 06.05.2015, 20:02

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
danke für den tipp. ist in dem aktuellen fall nicht notwendig, aber vielleicht in zukunft nützlich.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz