• 締切
  • すぐに回答を!

system関数を使いatコマンドで指定のCGIを実行したい

  • 質問No.3363129
  • 閲覧数253
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

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件)

  • 回答No.1

ベストアンサー率 49% (90/183)

> #/bin/csh
send.cshの1行目で「!」が抜けているのも気になりますが、
> perl /var/www/cgi01nni/mailmg/send2.pl > /dev/null;
この書き方だと(apacheユーザから見て)perlが見つからないと実行できません。
perlの呼び出しをフルパスで書いてみてはどうでしょうか。
補足コメント
masapiro

お礼率 100% (1/1)

ご連絡が遅くなり申し訳ありません。
確かに、!が抜けていますね。( ̄∇ ̄;)
perlのパスもフルパスにして再度確認してみます。
確認次第、ここに再度書き込みします。
よろしくお願いいたします。
投稿日時:2007/09/22 15:39
お礼コメント
masapiro

お礼率 100% (1/1)

ここの投稿方法がわからなかったので、ここに記載します。

再度以下のように設定しました。

サーバーに送り込む側の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
このような感じで表示されます。
いったいどこがおかしいのでしょうか?
色々試してみてるのですが、まったくわからなくなっています。
再度、ご教授をお願いいたします。
投稿日時:2007/09/22 17:20
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ