system management
1751712 メンバー
5193 オンライン
108781 解決策
新規ポスト

cronでのプロセスKill

 
K_K
時折のアドバイザー

cronでのプロセスKill

いつも有益な情報ありがとうございます。

 軽率な質問ですが、BaaNというERPのログイン用のデーモン(blogind)をkillするスクリプトをcronに登録したら、killされずに下記のメッセージが現れました。

=====================================================================================

blogind6.1: Cannot open file to read pid

blogind6.1: Cannot retrieve process_id of blogind. Kill using ps and kill.

=====================================================================================

コマンドに-kオプションをつけて実行すれば通常はkillできるのですが(cronに登録したスクリプトはこの1文を載せただけのものです)、cronではkillできません。

メッセージにはpidを読むためのコマンド(実行ファイル)の中が見れないとありますが、killするのとファイルの中身にどのような関係があるのでしょうか?(単純にcronはコマンドを実行するだけと思っていたので)

申し訳ありませんが、他の適当なデーモンが現状killできなかったり、思いつかなかったりで他のものでテストしていません。 

psでpidを調べてkillするスクリプトを作成すれば解決するとは思いますが、気になってしまい質問しました。
3件の返信3
nt
貴重なコントリビューター

cronでのプロセスKill

cron から "blogind -k" を実行させているのですよね?

cron の user は "blogind -k" の実行に十分な permission を持っていますか?

> blogind6.1: Cannot open file to read pid

"blogind -k" の process は deamon の blogind の process ID を

読もうとして失敗しています。たぶん permission のせいで open できない

のだと思います。

> blogind6.1: Cannot retrieve process_id of blogind. Kill using ps and kill.

ファイルから process ID が取れないので ps を使って process ID をとって

kill しようとしています。

結果的に daemon process が kill されていないのであれば kill に必要な

permission がないのでしょう。
K_K
時折のアドバイザー

cronでのプロセスKill

ntさん、ご返答ありがとうございます。

ご推測のとおりblogind -kをcronで実行させています。

cronのユーザはrootで行っていますのでpermissionはもっているはずだと思います。

cronでは同様に-kオプションでBaanのライセンスデーモンのlicdもkillすることになっていますが、killできていませんでした。

==========================================================================================

licmon6.1: Can't open ${BSE}/lib/licence6.1;${BSE_REM}!${BSE}/lib/licence6.1

licmon6.1: No serverlist

==========================================================================================

Baan自体に何かあるのでしょうか?
nt
貴重なコントリビューター

cronでのプロセスKill

Login shell 等で Baan の環境変数をセットしていますか?

File が open できないのは、必要な file が見つからないせいかもしれません。