Detect and restart hanging programs with Go
Do Not Pass Go!
If you want the process of restarting stalled programs to be particularly effective, supervised programs should be able to pick up where they left off instead of starting over. Rsync, for example, checks in --append
mode whether a file of the same name from a previous, aborted transfer attempt already exists on the target machine and fast-forwards the transfer accordingly if it finds itself in such a situation.
In the call
$ rsync -avP --append file hoster.com
the -a
(archive) option pushes a specified file to the server, while -v
turns on verbose mode, and -P
is short for --partial --progress
. In this mode, rsync keeps partial files on the target server if the transfer was interrupted, and --progress
shows the progress every second.
When called with
yoyo /usr/local/bin/rsync -avP ...
yoyo
monitors the rsync process to see if it keeps on generating output. If nothing is happening, say, because the server is taking a power nap, yoyo
aborts rsync and restarts it without further ado, resuming any unfinished business.
Note that yoyo
expects the full path to the monitored program in the call and does not search the $PATH
for it, unlike the shell. This is exactly what the doctor ordered, letting machines do what they do best and allowing humans to focus on creative work, thanks to automation.
Infos
- Expectre: https://github.com/mittwingate/expectre
« Previous 1 2 3
Buy this article as PDF
(incl. VAT)