
paprikaの日記: systemdわからん 6
wheezyからjessieにdist-upgradeしました。
apache2の設定の書き方が変わってたりして、ちょっと手こずりましたが、概ね成功しました。
ただひとつ、自力で解決できてない問題がありまして、わかる方いらっしゃいませんでしょうか?
POP3サーバの courier-pop を使っていて、wheezyでは S02courier-authdaemon と S02courier-pop で起動してたんですが、
jessieにしてから、起動中に POP3 Server がFAILEDという表示が出ます。
systemctl status courier-pop.service を実行すると、失敗の表示が出ます。
手入力で service courier-pop start を実行すると起動し、 systemctl status courier-pop.service の結果は active(running) になります。
/etc/rc.local に service courier-pop start を書い起動すると、これは成功します。
/var/lib/sysv-rc-conf/services を書き換えて、 S16courier-authdaemon 、 S16courier-pop にしてみたのですが、これはFAILEDです。
systemdだと、Sxx の数値は関係なく、依存関係を認識して、並列実行するのかなと思うのですが、この辺がよく分かっていません。
サービスの起動を遅らせるために /etc/rc.local に書くというのは、とりあえず動くのですが、なんだか間違っているような気がします。
どうやって解決するのが正しいのでしょうか?
解決法なんてねえよ(笑) (スコア:1)
そもそも、それこそがsystemd否定派が散々Disってきたことだもの。何を今更。
systemdが依存関係を解決しないなんて常識じゃない。
依存解決の為に、OpenRCよろしくsysinitとかbootとかdefaultみたいに大雑把にステージ分けろとか、
Unitファイル自体に、提供あるいは依存、あるいはSingletonするサービスの種別を変数として持たせろとか、昔っから色々言われては来たけどそのまま。
systemdが依存解決の手段を提供しない以上、djb派がCourierMTAを抜本的にsystemd対応させるまでそれはそのままでしょ。
だけど、その程度ならまだましと言えるよ。
例えばPostfix使いでDovecotのSASL使ってて、MDAもIMAPもPOP3もSieveまで全部Dovecotで、お互いにはLMTPで会話してるとかなったら依存解決どうするよ?
しかもPostfixはMilterにAMaViS使ってて、AMaViSの中からClamAVとSpamAssassin使ってると。
しまいにDovecotも仮想ユーザ管理にMariaDB使ってるとかなったらどうなると思う?
今時は中小企業どころかSOHOのメールサーバですら、これにbindやdnsmasqで独自ドメインの管理まで普通にやってるけどね。
これをsystemdで上手く動作させるのは一苦労。
これがsystemdのクソなところなんだよな。
何から何までディストリビューションデフォルトで使ってるような素人ほど害が無くて、重度に使ってるような奴ほど被害受ける。
しかしそれを指摘すると素人がファビョって荒らしだす。話にならない。
systemdは依存解決を軽く考えすぎだ。
Re:解決法なんてねえよ(笑) (スコア:2)
解決法ないんですか(´・ω・`)
試しに dovecot を入れてみたら、うまく動いている様子です。
外向きには公開していないので、plaintext認証にしました。
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
auth_mechanisms = plain login
こんな感じ。
ちなみに、どういうわけだか不思議なことに、bindもpostfixも一発で正常に動作しました。
詳細なエラーログを (スコア:0)
journalctl とかでもっと詳しいログは出てないんでしょうか
Re:詳細なエラーログを (スコア:1)
journalctl |grep pop してみたところ、
エラーらしきメッセージは、 Courier POP3 server:/var/run/courier/pop3d.pid.lock: No such file or directory
というのが出てきました。
lockファイルくらい普通自動的に作られるよね、と思いながらも、あらかじめ作っておかないといけないのだとうかと、
touch /var/run/courier/pop3d.pid.lock してみましたが、再起動したら、勝手に消えてしまいました。
今は諦めて、下の方が書かれていた dovecot に移行しました。
Re: (スコア:0)
/etc/tmpfiles.d/ に conf ファイルを置かないといけないパターンですかね。
というような内容になるのかな?(user/groupはcourierにあわせてください)
ArchLinux の知識なのでDebianでも使えるか分かりませんが、
/var/run 以下にフォルダを作るには /etc/tmpfiles.d/ の設定ファイルで指定してやる必要があるのです。
いやフォルダはあるんだけど…という場合は別の問題っぽいのでスルーしてください。
Re: (スコア:0)
どうでもいいけどフォルダじゃなくてディレクトリでした。
基本Windows脳なので…