Próbuję zaimplementować prosty serwer dziennika w Bash. Powinien pobrać plik jako parametr i podać go na porcie z netcat.Jak uzyskać identyfikator PID procesu, który jest podłączony do innego procesu w Bash?
(tail -f $1 &) | nc -l -p 9977
Ale problem polega na tym, że gdy netcat się kończy, ogon pozostaje włączony. (Wyjaśnienie: jeśli nie rozwiążę procesu ogona, to będzie on działał wiecznie, nawet netcat się zakończy.)
Jeśli w jakiś sposób znam PID ogona, to mogę go potem zabić.
Oczywiście, używając $! zwróci PID netcat.
Jak mogę uzyskać PID procesu ogon?
Co stanie się, jeśli nie użyjesz '&'? 'tail -f' powinien po prostu tam poczekać. Nie rozumiem, do czego służy '&', chociaż wygląda na to, że jest częścią większego skryptu. W każdym razie, jeśli zabijesz rurę, myślę, że ogon by wtedy umarł (o ile nie miałeś tła). –
z mojego rozumienia powłok, iw tym przypadku jest używany z jego znaczeniem "zacznij od tła". Przynajmniej takie zachowanie widzę teraz, próbując zastosować to rozwiązanie do mojego własnego, podobnego problemu. – starturtle