tty2で起動されたプロセスのtty1でpidを取得するにはどうすればよいですか?bash lsof:1つのttyから別のttyにpidを取得する
コンテキスト:
このファイルが定義済みの最大サイズを超えたときにファイルを生成するプロセスを終了させるためのbash 1ライナーを書き込もうとしています。 (これをループに埋め込む必要があるため、1ライナーはまだ動作していません)。
テスト中は、コマンドが実行されるtty2にpidが存在するにもかかわらず、lsofはターミナルtty1にPIDを返しません。
TTY1:ファイルとモニタリングを生成する変更
MAX_SIZE_Ko=10001;file=test_lsof;dd if=/dev/zero of=$file bs=1k count=800;inotifywait $file;SIZE_Ko=$(du -s $file | cut -f1); [[ "$SIZE_Ko" -gt "$MAX_SIZE" ]] && (PID=$(lsof $file | tail -n1 | awk -F" " '{ print $2 }') ; [[ ! -z $PID ]] && kill -9 $PID || echo "no running PID modifying $file")
tty2:ファイルサイズを増加
for ((1; 1; 1));do echo -e "foobar\n" >> test_lsof; echo $((i++))" - pid="$$; done
あなたはtty2プロセスを制御できますか?もしそうなら、プロセスPIDを最初のプロセスで取得できる方法で、例えば 'test_lsof.pid'に書き込むなどして保存するほうがずっと良いと思います。答えは –