shell - How to capture a process Id and also add a trigger when that process finishes in a bash script? -


i trying make bash script start jar file , in background. reason i'm using nohup. right can capture pid of java process need able execute command when process finishes.

this how started

nohup java -jar jarfile.jar & echo $! > conf/pid 

i know this answer using ; make command execute after first 1 finishes.

nohup java -jar jarfile.jar; echo "done" 

echo "done" example. problem don't know how combine them both. if run echo $! first echo "done" executes immediately. while if echo "done" goes first echo $! capture pid of echo "done" instead of 1 of jarfile.

i know achieve desire functionality polling until don't see pid running anymore. avoid as possible.

you can use bash util wait once start process using nohup

nohup java -jar jarfile.jar & pid=$!     # getting process id of last command executed  wait $pid  # waits until process mentioned pid complete echo "done, execute new command" 

Comments

Popular posts from this blog

Ansible - ERROR! the field 'hosts' is required but was not set -

customize file_field button ruby on rails -

SoapUI on windows 10 - high DPI/4K scaling issue -