- 締切済み
system関数を使いatコマンドで指定のCGIを実行したい
system関数を使いatコマンドで別のCGIを時間指定で動作させたいのですが、 サーバー側でどうしても実行されず困っています。 サーバーに送り込む側のCGIの記述は以下のように記述しています。 =============================================================== #!/usr/bin/perl $command = "at 22:15 09/20/2007 < /var/www/cgi01nni/mailmg/send.csh"; system $command; exit; =============================================================== send.cshは以下のように記述しています。 =============================================================== #/bin/csh perl /var/www/cgi01nni/mailmg/send2.pl > /dev/null; exit 0 =============================================================== root権限にてsshでサーバーにアクセスし、以下のコマンドを入力して 実行した際は、send2.plは正常に動作します。 at 22:15 09/20/2007 < /var/www/cgi01nni/mailmg/send.csh /etc/at.allowはありませんが、 /etc/at.denyはあります。(中身は空) サーバーに送り込む側のCGIを実行した後に、sshでatqで見ると 以下のように確認ができます。 61 2007-09-20 22:15 a apache sshで実行した際は、当たり前ですが以下のように最後がrootになります。 61 2007-09-20 22:15 a root なんとかatを実行させたいのですが、わかる方がおりましたら、 ご教授のほどよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Ceren
- ベストアンサー率49% (90/183)
> #/bin/csh send.cshの1行目で「!」が抜けているのも気になりますが、 > perl /var/www/cgi01nni/mailmg/send2.pl > /dev/null; この書き方だと(apacheユーザから見て)perlが見つからないと実行できません。 perlの呼び出しをフルパスで書いてみてはどうでしょうか。
お礼
ここの投稿方法がわからなかったので、ここに記載します。 再度以下のように設定しました。 サーバーに送り込む側のCGI =============================================================== #!/usr/bin/perl $command = "/usr/bin/at 16:47 09/22/2007 < /var/www/cgi01nni/mailmg/send.sh"; system $command; exit; =============================================================== send.csh側 =============================================================== #!/bin/csh /usr/bin/perl /var/www/cgi01nni/mailmg/send2.pl > /dev/null; exit 0 =============================================================== 結果ですが、やはり動作しない状況です。 sshで以下のコマンド入力すると動作します。 /usr/bin/at 16:47 09/22/2007 < /var/www/cgi01nni/mailmg/send.sh atqでは、 74 2007-09-22 17:15 a apache このような感じで表示されます。 いったいどこがおかしいのでしょうか? 色々試してみてるのですが、まったくわからなくなっています。 再度、ご教授をお願いいたします。
補足
ご連絡が遅くなり申し訳ありません。 確かに、!が抜けていますね。( ̄∇ ̄;) perlのパスもフルパスにして再度確認してみます。 確認次第、ここに再度書き込みします。 よろしくお願いいたします。