Asterisk Startup systemd
systemdは2010年頃から、それまでのSystem V initに代わって導入された、システム・サービスマネージャです。
Asteriskは16頃から、systemdとの連携に対応しており、systemdと連携することにより、Asteriskの起動成功をsystemdに報告することができます。
systemd連携を利用する
configureを実行する前に、Debian系列ではlibsystemd-dev、RedHatの系列ではsystemd-develをインストールしておきます。 その後Asteriskをビルドします。
ビルドが済んだasteriskの実行ファイルにlddを実行し、libsystemdへのリンクが表示されれば、systemdと連携するAsteriskがビルドできています。
$ ldd /usr/sbin/asterisk (略) libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fe58cda0000)
現在では、make config
でインストールされるsystemdユニットファイルはsystemdとの連携を利用する形式になっています。
systemdと連携しない場合
systemdとの連携機能を使用せず、単にsystemdにAsteriskを起動するだけをさせたい場合、以下の内容で /etc/systemd/system/asterisk.service ファイルを作成します。
[Unit] Description=Asterisk PBX and telephony daemon Documentation=man:asterisk(8) Wants=network.target After=network.target [Service] Type=simple #User=asterisk #Group=asterisk Environment=HOME=/var/lib/asterisk WorkingDirectory=/var/lib/asterisk ExecStart=/usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf ExecStop=/usr/sbin/asterisk -rx 'core stop now' ExecReload=/usr/bin/asterisk -rx 'core reload' # safe_asterisk emulation Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
User/Groupをasteriskにする場合にはコメントを外してください。
起動と終了
以下を実行して起動します。
systemctl daemon-reload systemctl enable systemctl start asterisk