Olivier
2016-Dec-19 14:54 UTC
[asterisk-users] Asterisk installation script on CentOS7 with systemd
Hello, For a new project, I'm adapting existing installation script to CentOS 7. I must admit I don't understand how to adapt things to systemd. Here are my questions: 1. I don't see any systemd sub-directory in asterisk-13.13.1/contrib. Do you think such directory and matching Makefile target could be useful ? 2. Should /run/asterisk directory creation be left to systemd or done by installation script before running "systemctl start asterisk" ? 3. I edited the following /etc/systemd/system:asterisk.service file: [Unit] Description=Asterisk PBX and telephony daemon. After=network.target [Service] Type=forking PIDFile=/var/run/asterisk/asterisk.pid Environment=HOME=/var/lib/asterisk WorkingDirectory=/var/lib/asterisk ExecStart=/usr/sbin/asterisk -vvvgF -U asterisk -G asterisk -C /etc/asterisk/asterisk.conf #ExecStart=/usr/sbin/asterisk -vvvgF -C /etc/asterisk/asterisk.conf ExecStop=/usr/sbin/asterisk -rx 'core stop now' ExecReload=/usr/sbin/asterisk -rx 'core reload' [Install] WantedBy=multi-user.target Running systemctl start asterisk fails with : Dec 19 15:43:08 foobar systemd: PID file /var/run/asterisk/asterisk.pid not readable (yet?) after start. Dec 19 15:43:09 foobar systemd: asterisk.service: main process exited, code=exited, status=1/FAILURE Dec 19 15:43:09 foobar asterisk: Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?) Dec 19 15:43:09 foobar systemd: asterisk.service: control process exited, code=exited status=1 Dec 19 15:43:09 foobar systemd: Unit asterisk.service entered failed state. Dec 19 15:43:09 foobar systemd: asterisk.service failed. But /usr/sbin/asterisk -vvvgF -U asterisk -G asterisk -C /etc/asterisk/asterisk.conf succeeds: # rasterisk Asterisk 13.13.1, Copyright (C) 1999 - 2014, Digium, Inc. and others. ... ========================================================================Running as user 'asterisk' Running under group 'asterisk' Connected to Asterisk 13.13.1 currently running on ... Any hint or help on how to debug this ? (I tried with and without any /run/asterisk directory owned by asterisk.asterisk) Best regards -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20161219/c3a5d255/attachment.html>
Jean Aunis
2016-Dec-19 15:11 UTC
[asterisk-users] Asterisk installation script on CentOS7 with systemd
Le 19/12/2016 ? 15:54, Olivier a ?crit :> Hello, > > For a new project, I'm adapting existing installation script to CentOS 7. > I must admit I don't understand how to adapt things to systemd. > > Here are my questions: > > 1. I don't see any systemd sub-directory in asterisk-13.13.1/contrib. > Do you think such directory and matching Makefile target could be useful ? > > 2. Should /run/asterisk directory creation be left to systemd or done > by installation script before running "systemctl start asterisk" ? > > 3. I edited the following /etc/systemd/system:asterisk.service file: > [Unit] > Description=Asterisk PBX and telephony daemon. > After=network.target > > [Service] > Type=forking > PIDFile=/var/run/asterisk/asterisk.pid > Environment=HOME=/var/lib/asterisk > WorkingDirectory=/var/lib/asterisk > ExecStart=/usr/sbin/asterisk -vvvgF -U asterisk -G asterisk -C > /etc/asterisk/asterisk.conf > #ExecStart=/usr/sbin/asterisk -vvvgF -C /etc/asterisk/asterisk.conf > ExecStop=/usr/sbin/asterisk -rx 'core stop now' > ExecReload=/usr/sbin/asterisk -rx 'core reload' > > > [Install] > WantedBy=multi-user.target > > Running systemctl start asterisk fails with : > Dec 19 15:43:08 foobar systemd: PID file > /var/run/asterisk/asterisk.pid not readable (yet?) after start. > Dec 19 15:43:09 foobar systemd: asterisk.service: main process exited, > code=exited, status=1/FAILURE > Dec 19 15:43:09 foobar asterisk: Unable to connect to remote asterisk > (does /var/run/asterisk/asterisk.ctl exist?) > Dec 19 15:43:09 foobar systemd: asterisk.service: control process > exited, code=exited status=1 > Dec 19 15:43:09 foobar systemd: Unit asterisk.service entered failed > state. > Dec 19 15:43:09 foobar systemd: asterisk.service failed. > > > But /usr/sbin/asterisk -vvvgF -U asterisk -G asterisk -C > /etc/asterisk/asterisk.conf succeeds: > # rasterisk > Asterisk 13.13.1, Copyright (C) 1999 - 2014, Digium, Inc. and others. > ... > ========================================================================> Running as user 'asterisk' > Running under group 'asterisk' > Connected to Asterisk 13.13.1 currently running on ... > > Any hint or help on how to debug this ? > (I tried with and without any /run/asterisk directory owned by > asterisk.asterisk) > > > Best regards > >Hello, Make sure that selinux is disabled, or in "permissive" mode. Otherwise it will prevent asterisk from starting. Best regards Jean Aunis -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20161219/d407d909/attachment.html>
Tzafrir Cohen
2016-Dec-20 11:37 UTC
[asterisk-users] Asterisk installation script on CentOS7 with systemd
On Mon, Dec 19, 2016 at 03:54:47PM +0100, Olivier wrote:> Hello, > > For a new project, I'm adapting existing installation script to CentOS 7. > I must admit I don't understand how to adapt things to systemd. > > Here are my questions: > > 1. I don't see any systemd sub-directory in asterisk-13.13.1/contrib. > Do you think such directory and matching Makefile target could be useful ? > > 2. Should /run/asterisk directory creation be left to systemd or done by > installation script before running "systemctl start asterisk" ? > > 3. I edited the following /etc/systemd/system:asterisk.service file: > [Unit] > Description=Asterisk PBX and telephony daemon. > After=network.target > > [Service] > Type=forking > PIDFile=/var/run/asterisk/asterisk.pidRemove those two (or get latest version with sd_notify support, make sure it works, and use 'Type=notify')> Environment=HOME=/var/lib/asterisk > WorkingDirectory=/var/lib/asterisk > ExecStart=/usr/sbin/asterisk -vvvgF -U asterisk -G asterisk -CDrop -F as well> /etc/asterisk/asterisk.conf > #ExecStart=/usr/sbin/asterisk -vvvgF -C /etc/asterisk/asterisk.conf > ExecStop=/usr/sbin/asterisk -rx 'core stop now'I'm trying to think if this is needed. Anything wrong with just letting systemd kill asterisk and all of its child precesses?> ExecReload=/usr/sbin/asterisk -rx 'core reload'Also, IIRC: User=asterisk -- Tzafrir Cohen icq#16849755 jabber:tzafrir.cohen at xorcom.com +972-50-7952406 mailto:tzafrir.cohen at xorcom.com http://www.xorcom.com