daemonでDjangoを動かす方法など
http://cr.yp.to/daemontools.html
# インストール sudo yum -y install rpm-build wget http://mirrors.qmailtoaster.com/daemontools-toaster-0.76-1.3.6.src.rpm rpmbuild --rebuild daemontools-toaster-0.76-1.3.6.src.rpm sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/daemontools-toaster-0.76-1.3.6.x86_64.rpm # systemd のユニットファイル sudo tee /etc/systemd/system/daemontools.service <<EOS [Unit] Description = daemontools After = network.target [Service] ExecStart = /command/svscanboot Restart = always Type = simple [Install] WantedBy = multi-user.target EOS # daemontools を起動 sudo systemctl daemon-reload sudo systemctl start daemontools sudo systemctl status daemontools sudo systemctl enable daemontools # サービスの設定 sudo mkdir /service/.w1-1 sudo mkdir /service/.w1-2 sudo mkdir /service/.w2-1 sudo mkdir /service/.w2-2 sudo mkdir /service/.w2-3 sudo ln -sf /vagrant/w1.sh /service/.w1-1/run sudo ln -sf /vagrant/w1.sh /service/.w1-2/run sudo ln -sf /vagrant/w2.sh /service/.w2-1/run sudo ln -sf /vagrant/w2.sh /service/.w2-2/run sudo ln -sf /vagrant/w2.sh /service/.w2-3/run sudo touch /service/.w1-1/down sudo touch /service/.w1-2/down sudo touch /service/.w2-1/down sudo touch /service/.w2-2/down sudo touch /service/.w2-3/down sudo ln -sf .w1-1 /service/w1-1 sudo ln -sf .w1-2 /service/w1-2 sudo ln -sf .w2-1 /service/w2-1 sudo ln -sf .w2-2 /service/w2-2 sudo ln -sf .w2-3 /service/w2-3 # サービスを開始する sudo svc -u /service/* # サービスの一覧表示 sudo svstat /service/* # サービスの再起動 sudo svc -t /service/* # サービスを停止する sudo svc -d /service/* # サービスを無効にする sudo svc -d /service/* && sudo svc -x /service/* && sudo rm /service/*
- supevisor
# インストール sudo yum -y install supervisor # supervisor 起動 sudo systemctl start supervisord.service sudo systemctl status supervisord.service sudo systemctl enable supervisord.service # サービスの設定 sudo tee /etc/supervisord.d/app.ini <<EOS [program:w1] command=/vagrant/w1.sh process_name=%(program_name)s-%(process_num)d numprocs=2 autostart=false [program:w2] command=/vagrant/w2.sh process_name=%(program_name)s-%(process_num)d numprocs=3 autostart=false EOS # 反映 sudo supervisorctl update # サービスの開始 sudo supervisorctl start all # サービスの再起動 sudo supervisorctl restart all # サービスの停止 sudo supervisorctl stop all
$ sudo systemctl daemon-reload #サービスの再読み込みをする。 $ sudo systemctl daemon-reload # サービスをスタート $ sudo systemctl start sampled # 動いているか確認 $ systemctl status sampled # システム起動時に自動的に実行させる $ sudo systemctl enable sampled #起動時に実行する設定が有効かチェックする $ systemctl is-enabled sampled # 起動時に実行する設定を取り消す $ systemctl disable sampled
$ cd /etc/systemd/system/ $ sudo vim sampled.service
iniファイルにて設定とかの流れ。
[Unit] Description=Sample Daemon [Service] ExecStart=/usr/local/lib/sampled.py Restart=always Type=forking PIDFile=/var/run/sampled.pid [Install] WantedBy=multi-user.target