- PR -

(初心者)qmailのインストールについて

投稿者投稿内容
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-05-16 13:00
こんにちは。

qmail を起動するスクリプト、/var/qmail/rc の中身とパーミッションも重要です。
※ このファイルは、目的に応じて /var/qmail/boot/ 内のファイルのどれかをコピーして使うよう想定されていた筈です。

試しに、root ユーザで /var/qmail/rc を実行してみる手もあるでしょう。

なお、qmail は自身をデーモン化しませんのでご注意を。
( /var/qmail/rc を直接実行する場合は、バックグラウンド実行させるか、Ctrl-C で終了させるなりしないと、シェルのプロンプトに戻って来れない )
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-05-16 13:04
こんにちは。

ちなみに/var/qmail/rcの中身ってどのようになってますかね?
kumapoo
ベテラン
会議室デビュー日: 2003/11/21
投稿数: 59
お住まい・勤務地: 住まいも、勤務も東京の品川あたり
投稿日時: 2005-05-16 13:15
kumapooです。
--->/var/qmail/rc 起動スクリプトの中身
# cat /var/qmail/rc
#!/bin/sh

# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.

exec env - PATH="/var/qmail/bin:$PATH" \\
#2005.05.15 mbox->maildir
#qmail-start ./Mailbox splogger qmail
qmail-start ./Maildir/ splogger qmail

--->/var/qmail/rc パーミッション確認
# ls -l /var/qmail/rc
-rwxr-xr-x 1 root root 270 5月 15 18:17 /var/qmail/rc

qmailを手動で起動させるときには、

# /var/qmail/rc &

でいいでしょうか?(&の意味がよくわからないのですが)

これで起動しますと、
# /var/qmail/rc &
[1] 1935
# PATH=/var/qmail/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[1]+ Done /var/qmail/rc

・・・こんな感じになりました。

[ メッセージ編集済み 編集者: kumapoo 編集日時 2005-05-16 13:35 ]
kumapoo
ベテラン
会議室デビュー日: 2003/11/21
投稿数: 59
お住まい・勤務地: 住まいも、勤務も東京の品川あたり
投稿日時: 2005-05-16 13:27
kumapooです。さきほど、急いでログを出したのでなにがなんだかよくわからなくなっていました。
あらためまして、angelさんの内容について確認させてください。

>qmail を起動するスクリプト、/var/qmail/rc の中身とパーミッションも重要です。
>※ このファイルは、目的に応じて /var/qmail/boot/ 内のファイルのどれかをコピーして使うよう想定されていた筈です。
上記ログで、/var/qmail/rcの中身は出してみました。maildir方式に対応させています。このスクリプト自体は確か、/var/qmail/boot/homeをコピーて修正しました。

>試しに、root ユーザで /var/qmail/rc を実行してみる手もあるでしょう。
rootで起動してみました。

>なお、qmail は自身をデーモン化しませんのでご注意を。
>( /var/qmail/rc を直接実行する場合は、バックグラウンド実行させるか、Ctrl-C で終了させるなりしないと、シェルのプロンプトに戻って来れない )
デーモン化?これは、psでプロセス名が出てこないということでしょうか?バックグラウンドで実行するというのもよくわかりません。
netstatでは、25番が開いているのですが。

すいません、勉強不足で。ちょっと本を見てみたら、ローカルからの配送は「qmail-inject」、外部からは「qmail-smtpd」がやりとりをすると書いてあります。つまり、今の状況は、tcpserverはあがっているけれども、バックグラウンドで「qmail-inject」があがっていないので、ローカルからの配送を受け付けないのかな?と。どうなんでしょうか。


[ メッセージ編集済み 編集者: kumapoo 編集日時 2005-05-16 13:33 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-05-16 14:02
とりあえず、/var/qmail/rc の中でマズそうな点が分かりました。

“exec env - PATH=〜 qmail-start 〜”というのが一つのコマンドですので、
不用意に改行を入れると、不完全なコマンドになってしまいます。

元々は、行末にバックスラッシュを入れていたため、2行に分かれていても
問題がなかったのですが、コメント等を入れたところで N.G.になったわけですね。

慣れない内は、どんなに長いコマンドでも、複数行に分けずに1行で書いた方が良いように思います。
※ つまり、元々分かれているものはまとめなおす…と。
いや、まぁ、運用する人が分かればいいんですがね。

以上、ご参考まで。

[ メッセージ編集済み 編集者: angel 編集日時 2005-05-16 14:03 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-05-16 14:55
補足です。
引用:
>なお、qmail は自身をデーモン化しませんのでご注意を。
>( /var/qmail/rc を直接実行する場合は、バックグラウンド実行させるか、Ctrl-C で終了させるなりしないと、シェルのプロンプトに戻って来れない )
デーモン化?これは、psでプロセス名が出てこないということでしょうか?バックグラウンドで実行するというのもよくわかりません。


失礼しました。ちょっと言葉が足らなかったです。
「もし qmail が正常に起動されたならば、qmail は延々動作し続けるので、バックグラウンド実行させるか、Ctrl-C で終了させるなりしないと、シェルのプロンプトに戻って来れない」
が正しいです。逆に、すぐにプロンプトに戻ってこれた場合は、qmail の起動に失敗しているということになります。

なお、バックグラウンド実行とは、コマンド末尾に & をつけてコマンドを起動することでできます。この場合、実行したコマンドがどれだけ長時間動作するものでも、すぐにプロンプトに戻ってきて別の作業ができます。
詳しくは、bash(1)のジョブ制御の項をどうぞ。

デーモン化とは、バックグラウンド実行に似ていますが、少し違います。
例えば、crond の起動は、そのものずばり“crond”というコマンドでできる( 正式には “service crond start”の方がベター )のですが、この時 crond 自体は果てしなく動き続けるにも関わらず、バックグラウンド実行したかのように、すぐにプロンプトに戻ってきます。

所謂「デーモン」と呼ばれる種類のプログラムは「デーモン化」の機能を持っているため、このように & をつけずに実行しても、すぐにプロンプトに戻ってくるようになっています。

もっとも、デーモン化やバックグラウンド実行の事を正確に説明しようと思うと、「制御端末」「セッション」「プロセスグループ」といった概念や、fork, exec といった、一連のプロセスコールを理解しなければなりません。
決して難しい訳では無いですが、的を射た or 分かりやすい 解説をしているページはあまり無さそうですし、分からなくても実用上不便が無いので、現時点では深入りしない方が良いでしょう

以上、ご参考まで。

[ メッセージ編集済み 編集者: angel 編集日時 2005-05-16 15:50 ]
kumapoo
ベテラン
会議室デビュー日: 2003/11/21
投稿数: 59
お住まい・勤務地: 住まいも、勤務も東京の品川あたり
投稿日時: 2005-05-16 19:26
angelさん、ありがとうございます!!
/var/qmail/rc
のスクリプトが間違っていたなんて、全くわかりませんでした。わざわざコメント付けた自分が情けないです。(というかシェルスクリプトを理解していないからこうなるんですね。)

以下、修正後の
/var/qmail/rc
です。

--->/var/qmail/rc
# cat /var/qmail/rc
#!/bin/sh

# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.

#2005.05.15 mbox->maildir
#qmail-start ./Mailbox splogger qmail
exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail

再起動後に
--->メール自分宛送信
#echo to: root@host.example.co.jp | /var/qmail/bin/qmail-inject

/root/Mairdir/new
にメール届いていません。

--->プロセスの確認
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.3 0.0 2632 460 ? S 18:53 0:04 init [3]
root 2 0.0 0.0 0 0 ? SWN 18:53 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? SW< 18:53 0:00 [events/0]
root 4 0.0 0.0 0 0 ? SW< 18:53 0:00 [kblockd/0]
root 6 0.0 0.0 0 0 ? SW< 18:53 0:00 [khelper]
root 5 0.0 0.0 0 0 ? SW 18:53 0:00 [khubd]
root 7 0.0 0.0 0 0 ? SW 18:53 0:00 [pdflush]
root 8 0.0 0.0 0 0 ? SW 18:53 0:00 [pdflush]
root 10 0.0 0.0 0 0 ? SW< 18:53 0:00 [aio/0]
root 9 0.0 0.0 0 0 ? SW 18:53 0:00 [kswapd0]
root 115 0.0 0.0 0 0 ? SW 18:53 0:00 [kseriod]
root 154 0.0 0.0 0 0 ? SW 18:53 0:00 [kjournald]
root 969 0.0 0.0 0 0 ? SW 18:54 0:00 [kjournald]
root 1356 0.0 0.1 2596 992 ? S 18:54 0:00 /sbin/dhclient -1 -q -lf /var/lib/dhcp/dhcli
root 1390 0.0 0.1 1808 584 ? S 18:54 0:00 syslogd -m 0
root 1394 0.0 0.0 2020 440 ? S 18:54 0:00 klogd -x
rpc 1420 0.0 0.1 2016 580 ? S 18:54 0:00 portmap
rpcuser 1439 0.0 0.1 1916 724 ? S 18:54 0:00 rpc.statd
root 1464 0.0 0.1 3044 572 ? S 18:54 0:00 rpc.idmapd
root 1551 0.0 0.1 2416 744 ? S 18:54 0:00 /usr/sbin/smartd
root 1560 0.0 0.0 2816 464 ? S 18:54 0:00 /usr/sbin/acpid
root 1590 0.0 0.2 5268 1472 ? S 18:54 0:00 /usr/sbin/sshd
root 1603 0.0 0.1 3208 904 ? S 18:54 0:00 xinetd -stayalive -pidfile /var/run/xinetd.p
root 1612 0.0 0.0 2620 464 ? S 18:54 0:00 gpm -m /dev/input/mice -t imps2
htt 1641 0.0 0.0 2068 260 ? S 18:54 0:00 /usr/sbin/htt
htt 1642 0.0 0.2 4764 1520 ? S 18:54 0:00 htt_server -nodaemon
wnn 1653 0.0 0.7 5848 4032 ? S 18:54 0:00 /usr/bin/jserver
bin 1662 0.0 0.2 3464 1064 ? S 18:54 0:00 /usr/sbin/cannaserver -syslog -u bin
root 1674 0.0 0.1 3180 648 ? S 18:54 0:00 crond
xfs 1690 0.0 0.4 4856 2500 ? S 18:54 0:00 xfs -droppriv -daemon
daemon 1707 0.0 0.1 2000 616 ? S 18:54 0:00 /usr/sbin/atd
root 1715 0.0 0.0 2464 288 ? S 18:54 0:00 /usr/local/bin/tcpserver -u qmaild -g nofile
root 1722 0.0 0.0 2084 312 ? S 18:54 0:00 mdadm --monitor --scan
root 1737 0.0 0.2 4096 1132 ? S 18:54 0:00 login -- root
root 1738 0.0 0.0 2832 352 tty2 S 18:54 0:00 /sbin/mingetty tty2
root 1739 0.0 0.0 2988 352 tty3 S 18:54 0:00 /sbin/mingetty tty3
root 1740 0.0 0.0 2508 352 tty4 S 18:54 0:00 /sbin/mingetty tty4
root 1741 0.0 0.0 2556 348 tty5 S 18:54 0:00 /sbin/mingetty tty5
root 1742 0.0 0.0 2620 352 tty6 S 18:54 0:00 /sbin/mingetty tty6
root 1893 0.0 0.2 6900 1400 tty1 S 18:55 0:00 -bash
root 1945 0.0 0.4 9092 2192 ? S 19:01 0:00 sshd: root@pts/0
root 1947 0.0 0.2 5924 1400 pts/0 S 19:01 0:00 -bash
root 1996 0.0 0.1 2544 768 pts/0 R 19:17 0:00 ps aux
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-05-17 10:08
こんにちは。

/var/qmail/rcが正しく起動されるとqmail-sendなどのプロセスがいるはずなのですが、
これが無いですね。中身は問題なさそうなんだけど。

と思ってこのスレッド一通り読み返して見ましたが、rc.localの中の
引用:

csh -cf'/var/qmail/rc &'


これですかね。-cfとシングルコーテーションの間にブランク入れてみてください。

スキルアップ/キャリアアップ(JOB@IT)