「Asterisk Startup systemd」の版間の差分

提供: VoIP-Info.jp
ナビゲーションに移動 検索に移動
Takahashi (トーク | 投稿記録)
ページの作成:「カテゴリ:Asterisk Linuxでのdaemon起動が /etc/init.d から systemctl に変わったことで影響を受ける場合があります。<br> 今のところ...」
 
Takatyan (トーク | 投稿記録)
編集の要約なし
 
(他の1人の利用者による、間の1版が非表示)
1行目: 1行目:
[[カテゴリ:Asterisk]]
[[カテゴリ:Asterisk]]
Linuxでのdaemon起動が /etc/init.d から systemctl に変わったことで影響を受ける場合があります。<br>
 
今のところ不都合が出ているのはCentOS 7です。<br>
systemdは2010年頃から、それまでのSystem V initに代わって導入された、システム・サービスマネージャです。
以下の内容で /etc/systemd/system/asterisk.service ファイルを作成します。<br>
 
:出所 https://community.asterisk.org/t/solved-centos-7-compatible-init-d-or-systemd-script-for-asterisk-13/66359
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がビルドできています。
 
<nowiki>$ ldd /usr/sbin/asterisk
(略)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fe58cda0000)</nowiki>
 
現在では、<code>make config</code>でインストールされるsystemdユニットファイルはsystemdとの連携を利用する形式になっています。
 
==systemdと連携しない場合==
 
systemdとの連携機能を使用せず、単にsystemdにAsteriskを起動するだけをさせたい場合、以下の内容で /etc/systemd/system/asterisk.service ファイルを作成します。<br>
:出所 https://community.asterisk.org/t/solved-centos-7-compatible-init-d-or-systemd-script-for-asterisk-13/66359<br>
  [Unit]
  [Unit]
  Description=Asterisk PBX and telephony daemon
  Description=Asterisk PBX and telephony daemon
27行目: 46行目:
  WantedBy=multi-user.target
  WantedBy=multi-user.target
User/Groupをasteriskにする場合にはコメントを外してください。<br>
User/Groupをasteriskにする場合にはコメントを外してください。<br>
==起動と終了==
以下を実行して起動します。
以下を実行して起動します。
  systemctl daemon-reload
  systemctl daemon-reload
  systemctl enable
  systemctl enable
  systemctl start asterisk
  systemctl start asterisk

2025年9月2日 (火) 19:39時点における最新版


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