Jak wykonać dwa "programy" w jednym poleceniu w bashu, które ze sobą rozmawiają?
Chodzi mi konkretnie o dd i wypisywanie statystyk. dd jest tak bardzo upośledzone, że nie pokaże statystyk do momentu aż go nie szturchniesz przez przesłanie sygnału USR1 do niego via kill. Aby sobie zautomatyzować pobieranie statystyk z dd zrobiłem to co jest podane w manualu dd, tylko zrobiłem to moim zdaniem w bardziej przyjazny sposób.
W pierwszym oknie odpalam dd:
Kod:
andy@nabuchodonozor:~/Pulpit$ dd if=/dev/zero of=dupa ibs=1MB count=3000
dd pobiera dane z /dev/zero w porcjach po 1MB. Pobiera takich porcji w ilości 3k sztuk == 3GB i zapisuje do pliku dupa.
W drugim oknie wywołuję kill'a z przełącznikiem USR1 co 10 sekund:
Kod:
watch -n 10 -g kill -USR1 `ps -A | pgrep -x dd`
watch -n 10 -g: wykonuje do momentu zmiany wyjścia polecenie co 10 sekund.
kill -USR1: wysyła sygnał USR1 do procesu dd
`ps -A | pgrep -x dd`: pobiera PID procesu dd
Czy da się to zapisać w jednym oknie i odpalić?