- PR -

qmaiのtcpserver 構文エラー? の質問

投稿者投稿内容
くわ
会議室デビュー日: 2003/05/19
投稿数: 4
投稿日時: 2003-08-08 15:40
1回目のtcpserverの起動の後の
echo
touch /var/lock/qmail
;;
の3行を削除すれば良いかと思います。
パルプ
ベテラン
会議室デビュー日: 2003/06/18
投稿数: 59
投稿日時: 2003-08-08 15:49
スガです。

スクリプトのソースを見て思ったんですが、case文があやしくないですか?
smtpとpop3の起動の間のところですね。

-----
touch /var/lock/qmail
;; ←ここがあやしい

tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup
-----

「;;」はcase文の各パターンの終端に付けるのではなかったかと記憶してるのですが。
ここが中途半端で文法エラーという可能性はないでしょうか?

的外れだったらごめんなさい。。
san12
常連さん
会議室デビュー日: 2003/06/19
投稿数: 26
投稿日時: 2003-08-08 16:20
引用:

stop)
# Stop daemons.
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;
*)
echo "Usage: S99qmail {start|stop}"
exit 1
esac

exit 0



この終了処理も非常に怪しいですね。
キュー上のメールや送受信中のメールの処理待ちとかは、
qmailはsigハンドラとかで自動で行うんでしたっけ?

もし、そうじゃない場合、コネクト要求を停止し、処理中
の物だけ継続させ、完了後に停止コマンドの投入が必要な
はずです。

それと、Pidの0チェックも意味がありませんよね。
initdとかシステムの起動を繰り返して、およそ何番以降か
を確認し、ある閾値より小さい場合、エラーを上げる必要が
あるのではないでしょうか?

少なくとも、僕の配下の場合、このコーディングでは基幹系
メールには適用不可です。

ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2003-08-08 20:35
引用:

この終了処理も非常に怪しいですね。
キュー上のメールや送受信中のメールの処理待ちとかは、
qmailはsigハンドラとかで自動で行うんでしたっけ?



「sigハンドラ」というのはおそらく、シグナル・ハンドラのことでしょうね。
qmailのドキュメントにはSIGTERMを受け取った場合にどういう動作を
するか書いてありますが。
kaname
会議室デビュー日: 2003/08/05
投稿数: 14
投稿日時: 2003-08-09 14:25
1回目のtcpserverの起動の後の
echo
touch /var/lock/qmail
;;

この3行を削除したら、起動停止は問題なくできるようになりました。
ここで構文が終了してしまっていたためなのでしょうか?

たしかにJCLなどでも job構文の終わりに;がついていたと記憶しています。

終了処理については構文を見て完全に把握できていないことと
qmail構築途中ということもありなんともわかりかねてしまいます
だんだんと覚えていこうと思っています

ありがとうございました

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