Shell Tricks

How to Execute Two Processes in Parallel

We want to ping two machines parallel. Kapow! can get IP addresses from query params:

1
2
3
4
5
6
$ cat parallel.pow
kapow route add '/parallel/{ip1}/{ip2}' - <<-'EOF'
     ping -c 1 -- "$(kapow get /request/matches/ip1)" | kapow set /response/body &
     ping -c 1 -- "$(kapow get /request/matches/ip2)" | kapow set /response/body &
     wait
EOF

Calling with curl:

1
 $ curl -v http://localhost:8080/parallel/10.0.0.1/10.10.10.1