bash: pid eines java programms

Seite 1 von 1 - Forum: Linux and other OS auf overclockers.at

URL: https://www.overclockers.at/linux/bash-pid-eines-java-programms_242861/page_1 - zur Vollversion wechseln!


wergor schrieb am 06.05.2015 um 19:18

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 schrieb am 06.05.2015 um 19:28

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 schrieb am 06.05.2015 um 19:43

danke :)


semteX schrieb am 06.05.2015 um 19:58

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


wergor schrieb am 06.05.2015 um 20:16

danke für den tipp. ist in dem aktuellen fall nicht notwendig, aber vielleicht in zukunft nützlich.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025