GMOクラウド(CentOS7)でdaemontoolsとtcpserverを立ち上げる

とりあえず tcpserver はインストールする。daemontools を使うほどではないかと思ったけど、CentOS では今までのように /etc/rc.d/init.d を書けばいいということではないみたい。
というわけで、消去法で daemontools を稼働させることにした。

tcpserver のインストール

# cd /home/hoge/qmail
# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
# tar xfz  ucspi-tcp-0.88.tar.gz 
# cd ucspi-tcp-0.88

# vi error.h
extern int errno;
↓
#include に変更

#make setup check

daemontools のインストール

# cd /home/hoge/daemontools
# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

# mkdir -p /package
# chmod 1755  /package
# cd /package/
# tar xfz /usr/local/src/daemontools-0.76.tar.gz 
# cd /package/admin/daemontools-0.76/

# vi /package/admin/daemontools-0.76/src/error.h
---
extern int errno;
↓
#include <errno.h>

# package/install

インストールできた!

systemctl で daemontools を動かす

# vi /etc/systemd/system/daemontools.service 
[Unit]
Description=daemontools Start supervise
After=getty.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/command/svscanboot /dev/ttyS0
TimeoutSec=0

[Install]
WantedBy=multi-user.target
# systemctl enable daemontools
# systemctl start daemontools

qmail と tcpserver の実行設定

qmail と tcpserver の実行設定を daemontools 流に書く。
/var/supervise 配下に設定ファイルを書いて、/service 配下で動かすことにした。

# mkdir /var/supervise
# mkdir /var/supervise/qmail
# mkdir /var/supervise/smtpd

qmail の run ファイル

# vi /var/supervise/qmail/run

#!/bin/sh

exec env - PATH="/var/qmail/bin:$PATH \
qmail-start ./Maildir/ splogger qmail

サービスディレクトリにシンボリックリンクを張る。

# ln -s /var/supervise/qmail /service/qmail

# svstat /service/*
でサービスが起動していることをチェック。

tcpserver の run ファイル

vi /var/supervise/smtpd/run

#!/bin/sh

exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin: \
/usr/local/sbin:/usr/local/bin" \
/usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb \
-R -H -l0 -u (qmaildのUID) -g (nofilesのGID) 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1

同じく
# svstat /service/*
で smtpd が起動していることをチェック。
おっと、その前に tcp.smtp.cdb を作成。

# vi /etc/tcp.smtp

127.:allow,RELAYCLIENT=""

# /usr/local/bon/tcprules /etc/tcp.smtp.cdb /etc.tcp.smtp.tmp < /etc/tcp.smtp

これで動くはず。

(追記)

# firewall-cmd --add-service=smtp
success
# firewall-cmd --add-service=smtp --permanent
success
# firewall-cmd --list-services
dhcpv6-client http ssh smtp

を忘れずに。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です