soralis初心者です。
サーバの資料採取のため、以下の概要のcshを組み、クーロン登録しております。
(1)snoop起動(snoop1.csh ,snoop2.csh)
snoop -o XXX01.snoop -d XXX01
snoop -o XXX02.snoop -d XXX02
(2)シェルの停止(snoopkill.csh)
pgrep -f 'snoop' | xargs kill
(1)の起動自体はうまく行えているのですが、
(2)の処理をcshから起動すると、プロセスが死にません。
※詳細
(2)をクーロンから実行後、cshのプロセスは死んでいるが、
snoopコマンド自体のプロセスが生きたままになり、
snoopログが無限に作り続けられている状態です。
コマンド(pgrep -f 'snoop' | xargs kill)を直接コマンドラインから
入力すると、snoopのプロセスは全て死にました。
cshと通常のコマンド入力ではkillの作用が異なるのでしょうか?
御回答をよろしくお願いします。
---------------------------------------------------------
(1)起動後のプロセス状態
pgrep -lf 'snoop'
88889 sh -c /XXX/snoop1.csh
88888 sh -c /XXX/snoop2.csh
77777 snoop -o XXX01.snoop -d XXX01
77776 snoop -o XXX02.snoop -d XXX02
---------------------------------------------------------
---------------------------------------------------------
(2)起動後(クーロン)のプロセス状態
pgrep -lf 'snoop'
77777 snoop -o XXX01.snoop -d XXX01
77776 snoop -o XXX02.snoop -d XXX02
---------------------------------------------------------
---------------------------------------------------------
(2)のコマンドをコマンドラインから実行後のプロセス状態
pgrep -lf 'snoop'
---------------------------------------------------------
No.1ベストアンサー
- 回答日時:
シェルのファイル名に、pgrepしている"snoop"がついてますが、
これを変更したらうまくいかないですか?
あと、pgrep|xargしてる部分をpkillにしてみるとか。
一応こっちで試した限りは問題なくkillされてます。
■実行例
root@opensolaris:~# uname -a
SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris
・シェルの中身
root@opensolaris:~# cat start.csh
#!/bin/csh
snoop -o snoop.out icmp
root@opensolaris:~# cat kill.csh
#!/bin/csh
echo "*********** kill **************"
echo "before "
date;pgrep -fl 'snoop'
pgrep -f 'snoop' | xargs kill
echo "after "
date;pgrep -fl 'snoop'
・飛んできたメールの内容
Your "cron" job on opensolaris
csh /root/kill.csh
produced the following output:
*********** kill **************
before
Mon Dec 20 20:13:00 JST 2010
1550 snoop -o snoop.out icmp
after
Mon Dec 20 20:13:00 JST 2010
御回答ありがとうございます。
こちらで確認したところ、
やはりKillするシェルのファイル名がネックとなっていました。
Killコマンドを発行した直後、起動元のシェルまで死んだため、
うまく走らなかったようです。(--;)
Killするシェルを以下の通り変更し、うまくいくことを確認しました。
(2)シェルの停止(snoopkill.csh ⇒ snpkill.csh(ファイル名を変更))
pgrep -f 'snoop' | xargs kill
単純な問題で助かりました。
本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TOPコマンドで表示するCPU使用...
-
ネットワーク使用率約75%維持状...
-
killコマンドの終了と強制終了...
-
Windowsホストプロセス Rundll...
-
メモ帳でhtmlを修正して上...
-
httpdの子プロセスがゾンビ化す...
-
タスクマネージャに表示されな...
-
プロンプトが返らない
-
Unixの親プロセスと子プロセス...
-
イラストレータでの透明部分の...
-
Powershell プロセス二重起動
-
コマンドライン上でファイルを...
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
bashでシングルクォート内の変...
-
pingは正常なのにtracerouteで...
-
batである文字列内に特定の文字...
-
ファイル名についている「-」と...
-
Dirコマンドでフォルダ内ファイ...
-
-bash: ftp: コマンドが見つか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TOPコマンドで表示するCPU使用...
-
コマンドライン上でファイルを...
-
プロセス、サービス、デーモン...
-
タスクバーの音量アイコンをク...
-
System Idle Processってなに?...
-
プロンプトが返らない
-
Windowsで作れるスレッド最大数...
-
タスクマネージャのCPU率がおか...
-
プロセスがタスクマネージャー...
-
Powershell プロセス二重起動
-
httpdの子プロセスがゾンビ化す...
-
CPU使用率が常に50~10...
-
タスクマネージャで終了できな...
-
ps コマンドのステータス。S Ss...
-
【プログラム】 iu14d2n.tmp ...
-
Windowsで同時にオープンできる...
-
ときどきCPU使用率が100%になっ...
-
killコマンドの終了と強制終了...
-
強制終了できないプロセスの強...
-
Windows 10のエクスプローラー...
おすすめ情報