fuser
フォルダにアクセスするプロセスのリストを取得するコマンドを使用しています。ただし、プロセスが内部フォルダー内のファイルを処理している場合は、親からfuser
コマンドを実行しても内部フォルダーを処理するプロセスに関する詳細は表示されません。
fuser
親フォルダから実行するときに内部フォルダのプロセスの詳細を抽出する方法はありますか?
私はSolaris 5.8を使用しています。
以下は私が試したコードです。
~:パスワード /ホーム/ah388 ~:ls sasuser.v91/ ~: cd sasuser.v91/ ~/sasuser.v91: catkk.sh そして[1]; エコ"" > /dev/null 完璧。 ~/sasuser.v91:./kk.sh & [1]15140 ~/sasuser.v91:ls a/kk.sh* ~/sasuser.v91:cd ~/sasuser.v91:ls kk.sh* ~/sasuser.v91/a: ./kk.sh & [2]15271 ~/sasuser.v91/a:cd ~:fixer-u sasuser.v91 sasuser.v91: 15140c(ah388880) --> 15271 プロセスはどうなりますか? ~:日 [1]- ./kk.sh & (wd: ~/sasuser.v91) 実行 [2]+ ./kk.sh & (wd: ~/sasuser.v91/a) 実行
答え1
これにより、ユーザーが現在使用しているすべてのディレクトリが表示されます。
fuser -u $(find sasuser.v91 -type d) 2>&1 | grep 'c('
答え2
ただあなたのためのスクリプトを書く
for i in `find directory -type d`
do
echo $i
fuser -u $i
done
ifを追加していくつかの出力があることを確認し、実行中のプロセスの出力を印刷することもできます。