• Posts
  • RSS
  • ◂◂RSS
  • Contact

  • Run When Done

    May 20th, 2014
    tech  [html]
    If you want to run a command when another finishes, the shell can do that for you:
        $ long_running_process.sh && echo "runs on success"
        $ long_running_process.sh || echo "runs on failure"
        $ long_running_process.sh ;  echo "runs either way"
    
    One common thing to do this with is email, so you get a notification:
        $ long_running_process.sh ; echo done | mail -s done jeff@jefftk.com
    
    (This does require your server to be set up for sending mail in a way that won't get rejected, which is actually kind of tricky.)

    For years, though, I've gotten annoyed at myself when after a process has been running for a while I wish I had set something else to run after it. Should I kill the process and start it over with && something_else.sh, or should I let it finish and then run something_else.sh on my own?

    It turns out you don't have to choose! Shell job control can do this for you. Just background the first command, and then when you foreground it add the next command:

        $ sleep 10
        ^Z
        [1]+  Stopped                 sleep 10
        $ fg ; echo "finished, exit status is $?"
        sleep 10
    (a few seconds of waiting)
        finished, exit status is 0
    
    You can see fg substitutes for the original command, running as long as it would, and passing along the exit status so && and || still work.

    Comment via: google plus, facebook

    Recent posts on blogs I like:

    Best Practices Civil Service

    I propose that transportation agencies hire people whose job is to keep abreast of global developments in the field and report on best practices. Which agencies should do it? Ideally, all urban ones. Very small ones should piggyback on large ones, or part…

    via Pedestrian Observations June 14, 2021

    Collections: The Queen’s Latin or Who Were the Romans? Part I: Beginnings and Legends

    Who were the Romans? How did they understand themselves as a people and ‘Roman’ as an identity? And what were the implications of that understanding – and perhaps more importantly the underlying reality – for Roman society and the success of the Roman Emp…

    via A Collection of Unmitigated Pedantry June 11, 2021

    It's ok to feed stray cats

    Before we had kids, Jeff and I fostered a couple of cats. One had feline AIDS and was very skinny. Despite our frugal grocery budget of the time, I put olive oil on her food, determined to get her healthier. I knew that stray cats were not a top global pr…

    via Giving Gladly May 15, 2021

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact