Dies sollte in Bash 4 oder höher funktionieren:
#!/bin/bash cd /Users/hawkarhama/Desktop/RUN ( cmdpid=$BASHPID; (sleep 300; kill $cmdpid ) & exec java -jar IPM.jar 0 20 3 sign.txt ) ( cmdpid=$BASHPID; (sleep 300; kill $cmdpid ) & exec java -jar IPM.jar 1 20 3 sign.txt ) ( cmdpid=$BASHPID; (sleep 300; kill $cmdpid ) & exec java -jar IPM.jar 2 20 3 sign.txt )
Für frühere Versionen:
#!/bin/bash cd /Users/hawkarhama/Desktop/RUN bash -c '(sleep 300; kill $$) & exec java -jar IPM.jar 0 20 3 sign.txt' bash -c '(sleep 300; kill $$) & exec java -jar IPM.jar 1 20 3 sign.txt' bash -c '(sleep 300; kill $$) & exec java -jar IPM.jar 2 20 3 sign.txt'
Nach der Suche ein wenig für eine reine Java - Version fand ich diese :
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2); final Future handler = executor.submit(new Callable(){ DoStuffHere(); }); executor.schedule(new Runnable(){ public void run(){ handler.cancel(); } }, 5*60*1000, TimeUnit.MILLISECONDS);