perl で色々管理スクリプト書いてるんですが、そのなかでこんなコードを書きました。 system("ssh remote 'rsync ...'"); で、rsyncが走ってる途中でやっぱやめたと思ってCtrl+C=SIGINTを送ったんですが、もちろん perl のプロセスは死ぬんですけど、remoteで動いてるrsyncはそのままゾンビになって残ってしまいました。 はて、いろんなところに原因が考えられるなぁということで調べてみました。 host1> ssh host2 'some-command' host2> strace -p 20279 # some-command's pid Process 20279 attached - interrupt to quit read(0, # then "Ctrl+C" on host1 (host2) "", 4096) = 0 wri
![ssh経由でリモートホストで実行してるプロセスにSIGINT送りたい時 - As a Futurist...](https://cdn-ak-scissors.b.st-hatena.com/image/square/22137fbcd92ffe7cb091dff1164dde42198a434c/height=288;version=1;width=512/https%3A%2F%2Fblog.riywo.com%2Fog-image%2F2011%2F04%2F17%2F005528%2Fimage.png)