Is there an elegant way, in the shell, to say “run this program until this other program is finished”?
I know I could run a thing, get a PID and then append a command with “&& kill pid” or something but that feels clunky.
Is there an elegant way, in the shell, to say “run this program until this other program is finished”?
I know I could run a thing, get a PID and then append a command with “&& kill pid” or something but that feels clunky.
@mhoye isn’t that what the ‘wait’ cmd does?
Edit: oh I understand what you’re saying. That sounds more complicated and now I also want to know if there’s an existing solution.
I don't see any reason not to just kill the screensaver progA after long.running.progB terminates. If progA were _doing_ something with files, then maybe send it a SIGTERM/HUP not a SIGKILL, but if its NOT doing i/o just kill it.
1. run and background progA&
2. progB
3. kill -1/15 pogA (or by PID)
You're just hung up (heh) over a hard kill feeling clunky? If progA is written correctly itll properly handle a SIGINT/TERM/HUP and close nice.
If you don't see any reason to do the thing I specifically said I wanted to do, consider that an opportunity for inquiry rather than sanctimony. With exactly one hundred percent of the respect this is due, if I wanted to just kill the process manually when I observe that it is finished, the question I'm asking would not exist.