• 締切済み

qmailからのスクリプト起動でのPostgreSQLへの接続と他のスクリプトの起動

こんにちは.はじめまして. qmailを起動し,メール到着時にmail.plというPerlスクリプトを起動しています. このmail.pl内で,PostgreSQLに接続し,データベースをいじりたいのですが, なぜかqmailで指定したスクリプトからはいじれません. 同じように,他のスクリプト(new.pl)をrequireを使用して呼び出しているのですが, 呼び出すことができません. new.plのパーティションは777に設定しました.(こんなに必要だとは思いませんが) qmail を利用すると,起動するスクリプトは誰が起動していることになるのでしょうか? 全てのスクリプトと.qmailはユーザーuser,の中にあります. PostgreSQLでは,ユーザーuserは作成してあり, mail.plの中で呼び出すDBの作成者はuser です. 初心者で何もわかっていないのですが, よろしくお願いします.

  • ctuk
  • お礼率80% (4/5)

みんなの回答

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

qmailは以前ちょっといじっただけなんですが、本を見ながらqmailをインストールした時は、 # mkdir /var/qmail # groupadd nofiles # useradd -g nofiles -d /var/qmail/alias -s /bin/false alias # useradd -g nofiles -d /var/qmail -s /bin/false qmaild # useradd -g nofiles -d /var/qmail -s /bin/false qmaill # useradd -g nofiles -d /var/qmail -s /bin/false qmailp # groupadd qmail # useradd -g qmail -d /var/qmail -s /bin/false qmailq # useradd -g qmail -d /var/qmail -s /bin/false qmailr # useradd -g qmail -d /var/qmail -s /bin/false qmails こんな風にして、qmailを稼働させるのに必要なユーザ・グループを登録しましたが。 Postgresのログファイルは確認しましたか?エラーメッセージが/var/log/messagesに出力されていると思いますが。 出力されていなかったら、postgres.confを修正して、ログをはく様にしてみてください。

ctuk
質問者

お礼

お礼のところですが,もう一度,捕捉させていただきます. 簡単なスクリプト(その中でDB接続 + 他のスクリプトを呼び出す) を作成し,実行しました. その結果,qmailを通さないで実行すると, うまくいくのですが, qmailを通し,実行すると, maillogに Can't_locate_test2.pl_in_@INC_(@INC_contains:_/usr/lib/perl5/5.6.1/i386-linux_/usr/lib/perl5/5.6.1_/usr/lib/perl5/site_perl/5.6.1/i386-linux_/usr/lib/perl5/site_perl/5.6.1_/usr/lib/perl5/site_perl_/usr/local/lib/site_perl/5.6.1/i386-linux_/usr/local/lib/site_perl/5.6.1_/usr/local/lib/site_perl_.)_at_/home/user/test.pl_line_13./ と書かれたエラー文がでました. (今までも同じようなエラーがでました) この,line13はrequire文で,test2.plを呼び出しています. どうしてqmailを通すとうまくいかないのでしょうか..

ctuk
質問者

補足

messageにログははいてました. しかし,mail.plから呼び出したはずの部分は まったくありませんでした. うまく呼び出せてないということなのでしょうか..? qmailに必要なユーザ,グループは登録してあります.

関連するQ&A

  • PostgreSQLへPerl Scriptからユーザー認証を行うには?

    PostgreSQLは現在初心者なのですが、ある特定のユーザーのみデータベースへアクセスできるようにしたいのですがPerlからのインターフェースでは可能でしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • qmailのpop3が authorization faild

    只今、qmailの構築中ですが、サーバ単体でのテストで どうしても受信がエラーになってしまします どなたか助けてください qmail自体というよりも、shellの使い方が間違っている 気がします 環境: redhat6.2、qmail-1.03、 tcpserver(ucspi-tcp-0.88)、 checkpassword-0.81、 Maildir形式、pop(apopではない) 現象: (1)qmail(qmail-inject)にて自分宛に送る /home/user/Maildir/new/にデータ存在確認(成功) (2)スクリプトを/var/qmail/rc(後述)にて作成 (3)自分自身でメール受信 (失敗) > telnet localhost pop3 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. +OK <812.998537941@l2.sunam.com> >user yamada +OK >pass **** -ERR authorization failed Connection closed by foreign host. /var/log/maillogには、 -ERR this user has no $HOME/Maildir ? と出力される ※尚、ユーザホームに、Maildirは作成済 ※スクリプトの内容を直接手入力するとなぜか正常に 受信できます!? スクリプトの問題? どなたか、お助けください よろしくお願いします ※/var/qmail/rc(起動スクリプト) #!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/ splogger qmail & #qmail for tcpserver /usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -v \ -u 506 -g 505 0 smtp /var/qmail/bin/qmail-smtp \ 2>&1 | /var/qmail/bin/splogger smtpd 3 & #qmail-pop3d for tcpserver /usr/local/bin/tcpserver -x /etc/tcp.pop3.cdb \ -v 0 pop-3 /var/qmail/bin/qmail-popup \ www.doamin.com /bin/checkpassword \ /var/qmail/bin/qmail-pop3d Maildir 2>&1 \ | /var/qmail/bin/splogger pop3d 3 & 以上

  • PostgreSQL? PostgresSQL? なんて読むのですか?

    最近フリーのDBをいじって遊んでるのですが、 PostgreSQLを検索してると PostgresSQLでヒットする事もみかけます。 ここのサイトのカテ分けも 「Q&Aコミュニティー > コンピューター [技術者向け] > データベース > PostgreSQL」 この場合、PostgreSQLと書いていますが、 投稿カテゴリーを 大カテ:コンピューター[技術者向け] 中カテ:データベース と選ぶと、 出てくる小カテはPostgresSQL です。 日本PostgreSQLユーザ会 http://www.postgresql.jp/ ではPostgreSQLと表記してるので PostgresSQLではなくPostgreSQLなんだろうなと思いますが、 あまりにもPostgresSQLと書いているのを見かけるので何だろう?と思っています。 そしてPostgreSQL? PostgresSQL? は何と読むのですか? ポストグレ? ポストグレス? ポストグレイス? ポストグレース? 正しい表記、正しい呼び名を教えてください。

  • Can't locate jcode.pl in @INC...

    perlスクリプトをcrontabで、   0 * * * * /フルパス と起動したところ、 上記のエラーがでます。 エラー部分は、   require './jcode.pl'; です。 requireにフルパスを打ったら、直ったんですが、なぜでしょう。 Perlの設定が悪いのでしょうか?

    • ベストアンサー
    • Perl
  • PostgreSQL 7.2.8 異なるデータベース間のテーブル

    こんにちは。かなり困っています、よろしくお願いします>< PostgreSQL 7.2.8 を使用しています。 一つのユーザーで、二つのデータベースがあります。 それぞれ同じカラムを持つ同じ名前のテーブルがあります。 中のデータは違います。 db1 - tableT db2 - tableT 条件を付けて、db1のtableTのデータを db2のtableTへコピーするにはどのような方法がありますか? 例えば select * from db1.tableT tbl1, db2.tableT tbl2 where tbl1.title = tbl2.title; のようにしてとりあえずselectで試してみましたがダメでした。 やはりスキーマとデータベースは違うんですね>< ドットが認識されませんでした。 どなたか解決法をご存知の方、よろしくお願いします。

  • PostgreSQLで作成したデータについて

    RedHatLinux9.0にPHPとPostgresql(RPMインストール) をインストールして、WEBアプリ検証をしていますが PostgresqlのコマンドでDBを作成し、 コマンドライン上では、表示できますが、 Mozilla(ブラウザ)からは表示できません。 DB呼び出し用のスクリプトはApacheの ドキュメントルートの/var/www/htmlにおいています。 DBの保存場所が悪いのかと考えて、作成したDBを findコマンドで検索しますが、表示されません。 Postgresqlのコマンドで作成したDBファイルは どこのディレクトリに保存されているのでしょうか? MYSQLのようにMYDやFRM、MYIというようなファイルの 拡張子をつけないと検索できないのでしょうか? PostgreSQLの場合はどんな拡張子になるのでしょうか? ご存知の方は教えてください タカ

    • 締切済み
    • PHP
  • PostgreSQLをサーバ起動時にstartさせたい

    PostgreSQLをサーバ起動時にstartさせたいと思っています。 /etc/rc.d/rc.localに下記を追記しましたが、起動してくれません。ログファイルも作成されていませんでした。 echo -n "Starting PostgreSQL: " su -l pgsql -s /bin/sh -c "/usr/local/pgsql/bin/pg_ctl -l /var/log/postgresql.log start > /dev/null 2>&1" < /dev/null echo "done." 何が悪いのでしょうか?PostgreSQLは手動でstartすることはできます。 また、PostgreSQLの起動スクリプトを作成し、webminで制御したいと思うのですが、PostgreSQLの起動スクリプトの書き方について参考になるHPがあれば紹介していただきたいと思っています。 よろしくお願いいたします。

  • qmailでメールを送信できません

    メールサーバ上に存在するユーザーから自ドメイン宛にメールを送信することはできます。 その後、同一ネットワーク上のクライアントのメーラーから同じユーザーのアカウントを作成して メールを送信することが出来ません。 インターネットのサイトからサーバのsmtpポートが開いているかチェックをしたところ、開いていない、と言われました。 またnetstatでsmtpがlistenになっていません。 でもqmailのプロセスは起動しています。 # ps -aef | grep qmail qmails 14540 13180 0 00:54 pts/4 00:00:00 qmail-send qmaill 14541 14540 0 00:54 pts/4 00:00:00 splogger qmail root 14542 14540 0 00:54 pts/4 00:00:00 qmail-lspawn ./Mailbox qmailr 14543 14540 0 00:54 pts/4 00:00:00 qmail-rspawn qmailq 14544 14540 0 00:54 pts/4 00:00:00 qmail-clean また、OSののファイヤーウォールを設定するsystem-config-securitylevelというツールでsmtpを開ける設定にしてあります。 どうやって、smtpサービスを起動するようにしたらよいのでしょうか? <環境> Centos5.5 qmail 1.06 説明がヘタで申し訳ありませんが、初心者です。よろしくお願いします。

  • telnet接続でPostgreSQLにエクセルデータの流し込み

    こんにちわ。 telnet接続しかできないPostgreSQLに手元にあるエクセルデータを流し込みたいのですが何かすっと対応できる方法は無いでしょうか? 並び方などはデータベースレイアウトに合わせております。 テーブル作成のようなスクリプトですっと流し込めないですか・・・ お手数をお掛けしますが何卒宜しくお願いいたします。

  • PHPとPostgreSQLとの連携

    今、WindowsXPでPHPとPostgreSQLを連携 させたいのですがなかなか上手く行きません。 どなたか、分かる方がいれば宜しくお願いします。 環境 OS→Windows HomeEdition Apache→Apache HTTP Serber2.0.59 PHP→PHP4.4.4 PostgreSQL→PostgreSQL8.1.4 です。 PostgreSQLの中にtest_dbというデータベースをつくり setuzoku.phpから接続できるかどうかのif文を作り確認 していますが、何度やっても接続失敗と出ます。 <?php $con = pg_connect("user='postgres' dbname='test_db' password='grjtf'"); if (! $con) { print "接続失敗"; } else { print "接続成功"; } ?>