<div dir="ltr">This is great! I will make excellent use of this, I just know it.<div>I'm going to share this with my students and fellow teachers!</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Feb 8, 2020 at 1:50 AM Chris Frey <<a href="mailto:cdfrey@foursquare.net">cdfrey@foursquare.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I've been wanting a tool like this for so long, that when I found it<br>
recently, I felt I had to share it.<br>
<br>
On Debian systems it is packaged as task-spooler, as command line 'tsp'.<br>
<br>
Have multiple long running processes you want to throw in the background,<br>
but run them sequentially so they don't overload your system?<br>
<br>
$ cd project1<br>
$ tsp make<br>
$ cd ~/project2<br>
$ tsp make<br>
$ cd ~/project3<br>
$ tsp build-docker-image.sh<br>
<br>
Using tsp by itself gives you a summary of what's going on (contrived<br>
example using sleep):<br>
<br>
$ tsp<br>
ID State Output E-Level Times(r/u/s) Command [run=1/1]<br>
0 running /tmp/ts-out.uhS6Kv sleep 3m<br>
1 queued (file) sleep 4m<br>
2 queued (file) sleep 2m<br>
<br>
Want to watch the output for a while on the running process? Here's tail -f<br>
style behaviour on task 0:<br>
<br>
$ tsp -t 0<br>
<br>
The whole log?<br>
<br>
$ tsp -c 0 |less<br>
<br>
Want to kill it?<br>
<br>
$ tsp -k 0<br>
<br>
What if you have a beefier system than most and want to have multiple<br>
running slots? 4 CPUs? Let's open 3 slots:<br>
<br>
$ tsp -S 3<br>
<br>
Now 3 tasks can run at once.<br>
<br>
Want to have different queues for different purposes?<br>
<br>
$ alias tsdisk='TS_SOCKET=/tmp/socket.disk tsp'<br>
$ alias tsram='TS_SOCKET=/tmp/socket.ram tsp'<br>
$ alias tsnet='TS_SOCKET=/tmp/<a href="http://socket.net" rel="noreferrer" target="_blank">socket.net</a> tsp'<br>
<br>
$ tsdisk qemu-img convert -c ....<br>
$ tsnet scp backup.tar host:/var/backups/<br>
$ tsnet wget <a href="https://videohouse.example.com/movie.mp4" rel="noreferrer" target="_blank">https://videohouse.example.com/movie.mp4</a><br>
<br>
Need notification something finished?<br>
<br>
$ (tsp -w 4 ; xmessage qemu-img convert complete) &<br>
<br>
Have an urgent task that needs to go to the head of the line?<br>
<br>
$ tsp make # job 5<br>
# later...<br>
$ tsp -u 5 # head of the queue<br>
<br>
Need to chain commands based on success?<br>
<br>
$ tsp /usr/local/bin/run-backups.sh # job 2<br>
$ tsp -D 2 scp /var/backups/today.tar.gz host:/var/backups<br>
<br>
It's a beautiful thing! :-)<br>
<br>
- Chris<br>
<br>
<br>
_______________________________________________<br>
kwlug-disc mailing list<br>
<a href="mailto:kwlug-disc@kwlug.org" target="_blank">kwlug-disc@kwlug.org</a><br>
<a href="https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org" rel="noreferrer" target="_blank">https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a><br>
</blockquote></div>