From a1fe44a8b149f5b34eb0ff694dfa83bc0e7888b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Zaprza=C5=82a?= Date: Fri, 22 May 2015 11:09:22 +0200 Subject: [PATCH] FS-7495 Add systemd unit configuration file for CentOS 7 --- build/freeswitch-tmpfiles.conf | 1 + build/freeswitch.service | 17 +++++++++++++++++ freeswitch.spec | 22 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 build/freeswitch-tmpfiles.conf create mode 100644 build/freeswitch.service diff --git a/build/freeswitch-tmpfiles.conf b/build/freeswitch-tmpfiles.conf new file mode 100644 index 0000000000..881873fb29 --- /dev/null +++ b/build/freeswitch-tmpfiles.conf @@ -0,0 +1 @@ +d /run/freeswitch 0750 freeswitch daemon - diff --git a/build/freeswitch.service b/build/freeswitch.service new file mode 100644 index 0000000000..ae6921b4df --- /dev/null +++ b/build/freeswitch.service @@ -0,0 +1,17 @@ +[Unit] +Description=FreeSWITCH +After=syslog.target network.target +After=postgresql.service postgresql-9.3.service postgresql-9.4.service mysqld.service httpd.service + +[Service] +User=freeswitch +EnvironmentFile=-/etc/sysconfig/freeswitch +# RuntimeDirectory is not yet supported in CentOS 7. A workaround is to use /etc/tmpfiles.d/freeswitch.conf +#RuntimeDirectory=/run/freeswitch +#RuntimeDirectoryMode=0750 +WorkingDirectory=/run/freeswitch +ExecStart=/usr/bin/freeswitch -nc -nf $FREESWITCH_PARAMS +ExecReload=/usr/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/freeswitch.spec b/freeswitch.spec index 8c9496f326..a532e6f714 100644 --- a/freeswitch.spec +++ b/freeswitch.spec @@ -1670,8 +1670,14 @@ cd ../.. %if 0%{?suse_version} > 100 %{__install} -D -m 744 build/freeswitch.init.suse %{buildroot}/etc/rc.d/init.d/freeswitch %else +%if "%{?_unitdir}" == "" # On RedHat like %{__install} -D -m 0755 build/freeswitch.init.redhat %{buildroot}/etc/rc.d/init.d/freeswitch +%else +# systemd +%{__install} -Dpm 0644 build/freeswitch.service %{buildroot}%{_unitdir}/freeswitch.service +%{__install} -Dpm 0644 build/freeswitch-tmpfiles.conf %{buildroot}%{_tmpfilesdir}/freeswitch.conf +%endif %endif # On SuSE make /usr/sbin/rcfreeswitch a link to /etc/rc.d/init.d/freeswitch %if 0%{?suse_version} > 100 @@ -1723,9 +1729,18 @@ fi chown freeswitch:daemon /var/log/freeswitch /var/run/freeswitch +%if "%{?_unitdir}" == "" chkconfig --add freeswitch +%else +%tmpfiles_create freeswitch +/usr/bin/systemctl -q enable freeswitch.service +%endif + +%preun +%{?systemd_preun freeswitch.service} %postun +%{?systemd_postun freeswitch.service} ###################################################################################################################### # # On uninstallation get rid of the freeswitch user @@ -1794,7 +1809,12 @@ fi ###################################################################################################################### %config(noreplace) %attr(0644,-,-) %{HTDOCSDIR}/* %ifos linux +%if "%{?_unitdir}" == "" /etc/rc.d/init.d/freeswitch +%else +%{_unitdir}/freeswitch.service +%{_tmpfilesdir}/freeswitch.conf +%endif %config(noreplace) /etc/sysconfig/freeswitch %if 0%{?suse_version} > 100 /usr/sbin/rcfreeswitch @@ -2482,6 +2502,8 @@ fi # ###################################################################################################################### %changelog +* Tue Jul 09 2015 - Artur ZaprzaƂa +- add systemd service file for CentOS 7 * Thu Jun 25 2015 - s.safarov@gmail.com - Dependencies of mod_shout were declared * Mon Jun 22 2015 - krice@freeswitch.org