Qmail'in Başlatılması
Önceki QMAIL Kurulumu NASIL Sonraki
Qmail'in Başlatılması
Qmail'in Açılış Betiği (initscript) ile Başlatılması
Eğer INETD kullanmak isterseniz bu kısmı hiç okumadan bir sonraki bölüme (Qmail'in INETD ile Başlatılması) geçiniz. Son olarak uyarıyorum INETD kullanmak çok sağlıklı bir yöntem değildir.
Qmail'i açılışta başlatmak için  ve qmail'i durdurup çalıştırmayı daha kolay hale getirmek için aşağıdaki betiği yazalım. (Bunları yazmakla vakit kaybetmeyin. Ya buradan bir metin düzenleyiciye kopyalayın ya da doğrudan http://www.enderunix.org/docs/qmail.sh adresinden alın.
qmail.sh Betiği:
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
case "$1" in

start)
 echo -n "Qmail başlatılıyor: svscan"
 cd /var/qmail/supervise
 env - PATH="$PATH" svscan &
 echo $! > /var/run/svscan.pid
 echo "."
 ;;

stop)
 echo -n "Qmail durduruluyor: svscan"
 kill `cat /var/run/svscan.pid`
 echo -n " qmail"
 svc -dx /var/qmail/supervise/*
 echo -n " logging"
 svc -dx /var/qmail/supervise/*/log
 echo "."
 ;;

reload|hup)
 echo "qmail-send'e HUP sinyali gönderiliyor."
 svc -h /var/qmail/supervise/qmail-send
 ;;

pause)
 echo "qmail-send bekletmeye alınıyor"
 svc -p /var/qmail/supervise/qmail-send
 echo "qmail-smtpd bekletmeye alınıyor"
 svc -p /var/qmail/supervise/qmail-smtpd
 ;;

cont)
 echo "qmail-send bekletmeden çıkıyor"
 svc -c /var/qmail/supervise/qmail-send
 echo "qmail-smtpd bekletmeden çıkıyor"
 svc -c /var/qmail/supervise/qmail-smtpd
 ;;


restart)
 echo Qmail yeniden başlatılıyor:"
 echo "* qmail-smtpd durduruluyor."
 svc -d /var/qmail/supervise/qmail-smtpd
 echo "* qmail-send'e SIGTERM gönderiliyor ve yeniden başlatılıyor."
 svc -t /var/qmail/supervise/qmail-send
 echo "* qmail-smtpd başlatılıyor."
 svc -u /var/qmail/supervise/qmail-smtpd
 ;;

cdb)

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
 chmod 644 /etc/tcp.smtp*
 echo "/etc/tcp.smtp yeniden yüklendi."
 ;;

help)

cat <<HELP

stop    -- eposta hizmeti durdurulur.
           (smtp bağlantıları reddedilir, dışarı birşey gönderilmez)
start   -- eposta hizmeti başlatılır.
           (smtp bağlantıları kabul edilir, postalar gönderilir)
pause   -- eposta hizmeti geçici olarak durdurulur.
           (bağlantılar kabul edilir, hiçbir şeye izin verilmez)
cont    -- Geçici olarak durdurulan hizmet başlatılır.
cdb     -- smtp için kullanılan tcpserver cdb dosyası yeniden kurgulanır.
restart -- smtp durdurulur, qmail-send'e bir TERM sinyali gönderilerek
           qmail-send ve ardından smtp yeniden başlatılır.
reload  -- qmail-send HUP gönderilir, yerel ve sanal alanlar yeniden okunur.
HELP
 ;;

*)

echo "Kullanım: $0 {start|stop|restartreload|pause|cont|cdb|help}"
 exit 1
 ;;
 esac
 exit 0
Bu betiğin çalışması için bir kaç  dizin ve dosya oluşturmamız lazım. Sıra ile aşağıdaki komutları verelim:
# mkdir -p /var/qmail/supervise/qmail-send/log
# mkdir -p /var/qmail/supervise/qmail-smtpd/log
# chmod +t /var/qmail/supervise/qmail-send
# chmod +t /var/qmail/supervise/qmail-smtpd
# chown -R qmaill.wheel /var/log/qmail
daha sonra /var/qmail/supervise/qmail-send/run diye bir dosya oluşturun ve içine aşağıdakieri yazın:
#!/bin/sh
exec /var/qmail/rc
/var/qmail/supervise/qmail-send/log/run diye bir dosya oluşturun ve içine aşağıdakieri yazın:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
yukarıdaki ifade ile qmail-send programının günlük kayıtlarının /var/log/qmail dizine atılmasını sağlıyoruz.
/var/qmail/supervise/qmail-smtpd/run diye bir dosya oluşturun ve içine aşağıdakileri yazın:
#!/bin/sh
qmailDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

exec /usr/local/bin/softlimit -m 4000000 \
/usr/local/bin/tcpserver -v -p -H -R -l 0 -x /etc/tcp.smtp.cdb -c 256\
-u "$qmailDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
-l 0 (küçük L ve sıfır) parametresi ile eposta sunucusunun makina ismini (hostname) bulurken DNS sorgulaması yapmaması sağlanir. Bu parametreyi koymazsanız, eposta sunucunuza bağlantı çok yavaş olacaktır.
-c parametresi ile eposta sunucusuna aynı anda kaç tane bağlantıya izin verileceği belirlenir (burada 256 tane).
Uyarı
Yukarıdaki satırlarda \ işaretinden sonra boş satır olmaması lazım, aksi takdirde qmail çalışmaz.
Dikkat
Solaris kullanıyorsanız, yukarıdaki dosyada
qmailDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
satırları yerine
qmailDUID=`/usr/xpg4/bin/id -u qmaild`
NOFILESGID=`/usr/xpg4/bin/id -g qmaild`
ifadelerini yazın.
/var/qmail/supervise/qmail-smtpd/log/run diye bir dosya oluşturun ve içine aşağıdakileri yazın:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd
yukarıdaki ifade ile qmail-smtp programının günlük kayıtlarının /var/log/qmail/smtpd dizine atılmasını sağlıyoruz.
Şimdi de dosyaların izinlerini değiştirelim.
# chmod 755 /var/qmail/supervise/qmail-send/run
# chmod 755 /var/qmail/supervise/qmail-send/log/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
# mkdir -p /var/log/qmail/smtpd
# chown qmaill /var/log/qmail /var/log/qmail/smtpd
Evet dizinleri ve dosyaları oluşturduk.
İstediğimiz makinalara (hosts) smtp relay izni vermek için  aşağıdaki komutu verelim:
#echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
Bu ifade ile makinanın kendi lo0 arayüzüne (loopback) izin verilir.
Ve eposta sunucusunun IP'sine de relay izni verelim (IP'si 212.65.128.82 olsun). RELAYCLIENT="" ifadesi ile RELAYCLIENT değişkenine boş bir değer atanmış olur, bu değişkene bir değer atandığı için qmail-smtpd bu IP'li istemciye RELAY iznini verir:
# echo '212.65.128.82:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
belli bir IP ailesine izin vermek için (örneğin 212.144.12.)
# echo '212.144.12.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
Ve /etc/tcp.smtp dosyasının en sonuna
:allow
ifadesini ekleyin (manası şudur: tüm smtp bağlantılarına izin ver ama RELAYCLIENT değiskenini atama). SMTP erişim veritabanını oluşturmak için aşağıdaki komutu verin:
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
/etc/tcp.smtp dosyasına kayıt ekleme/çıkarma yaptıktan sonra bu komutu tekrar çalıştırmanız gerekir. Ama qmail'i yeniden başlatmanıza (restart) gerek yok!.
Qmail'in her açılışta otomatik olarak çalışması
FreeBSD için:
Yukarıda yazdığımız qmail.sh betiğini /usr/local/etc/rc.d/ altına kopyalayın:
# cp qmail.sh /usr/local/etc/rc.d/
# chmod 700  /usr/local/etc/rc.d/qmail.sh
Qmail'i çalıştırmak için
/usr/local/etc/rc.d/qmail.sh start
OpenBSD için:
Yukarıda yazdığımız qmail.sh betiğini /usr/local/etc/ altına kopyalayın:
# cp qmail.sh /usr/local/etc
#chmod 755  /usr/local/etc/qmail.sh
etc/rc.local dosyasına
/usr/local/etc/qmail.sh start
satırını ekleyin.
Red Hat ve Mandrake için:
Yukarıda yazdığımız qmail.sh betiğini /usr/local/etc/rc.d/init.d/ altına kopyalayın:
# cp qmail.sh /etc/rc.d/init.d
# chmod 700  /etc/rc.d/init.d/qmail.sh
Qmail'in açılışta başlatılması için /etc/rc.d/rc.local dosyasına
/etc/rc.d/init.d/qmail.sh start
yazmanız yeterlidir.
Solaris için:
# cp qmail.sh /etc/init.d
# chmod 700  /usr/local/etc/rc.d/qmail.sh
# ln -s /etc/init.d/qmail.sh /etc/rc2.d/S90qmail
# ln -s /etc/init.d/qmail.sh /etc/rc2.d/K90qmail
Qmail'in INETD ile Başlatılması
/etc/inetd.conf dosyasına aşağıdaki ifadeleri yazın:
smtp stream tcp nowait qmaild /usr/local/bin/tcpd /var/qmail/bin/tcp-env ¬
  /var/qmail/bin/qmail-smtpd
ve şu komutu verin:
# kill -HUP inetd_pid
Ayrıca qmail'in /var/log/maillog veya /var/log/syslog dosyasında günlük kayıtlarını tutmasını istiyorsanız /var/qmail/rc dosyasına "splogger qmail" parametresini ekleyin. Örnek bir /var/qmail/rc dosyası şöyledir:
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail
hepsi bu :)). Ama  inetd.conf'dan çalıştırmak kolay diye inetd'yi kullanmayın. Eğer eposta sunucunuz çok yoğun bir şekilde çalışıyorsa  inetd yüzünden performans düşüklüğü olabilir ve en önemlisi RELAY  yapamazsınız.
Önceki Üst Ana Başlık Sonraki
/var/qmail/rc Dosyası ve Maildir Başlangıç Yapılandırma Dosyaları
Bir Linux Kitaplığı Sayfası