URL: https://www.overclockers.at/linux/bash-pid-eines-java-programms_242861/page_1 - zur Vollversion wechseln!
ich rufe in einem script ein java programm auf und hätte gerne dessen pid um es später wieder killen zu können.
das resultat:Code:(java -jar MonitorSetup.jar & ) echo "pid:" "$!"
was mache ich falsch?Code:pid:
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
danke
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
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