Asterisk Startup systemd

提供: VoIP-Info.jp
2025年9月2日 (火) 19:39時点におけるTakatyan (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動


systemdは2010年頃から、それまでのSystem V initに代わって導入された、システム・サービスマネージャです。

Asteriskは16頃から、systemdとの連携に対応しており、systemdと連携することにより、Asteriskの起動成功をsystemdに報告することができます。

参考:https://github.com/asterisk/asterisk/commit/07b95f7c65b7c083724f1af2b26f93cc22cad58c

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 ファイルを作成します。

出所 https://community.asterisk.org/t/solved-centos-7-compatible-init-d-or-systemd-script-for-asterisk-13/66359
[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