diff --git a/build/Makefile.am b/build/Makefile.am index dbda77330e..936ab56843 100644 --- a/build/Makefile.am +++ b/build/Makefile.am @@ -55,10 +55,10 @@ install: @echo " + Install/Re-install default config: +" @echo " + ---------------------------------- +" @echo " + $(MK) samples +" -if KNOWN_INIT +if SYSTEMD_INIT @echo " + +" - @echo " + Install startup scripts: +" - @echo " + ------------------------ +" + @echo " + Install systemd startup scripts: +" + @echo " + -------------------------------- +" @echo " + +" @echo " + build/startup/install_systemd.sh +" endif diff --git a/build/startup/freeswitch.service.in b/build/startup/freeswitch.service.in index 930c8c2b93..f580ba2480 100644 --- a/build/startup/freeswitch.service.in +++ b/build/startup/freeswitch.service.in @@ -5,11 +5,12 @@ After=syslog.target network.target local-fs.target [Service] ; service Type=forking -PIDFile=@rundir@/freeswitch.pid +PIDFile=@runtimedir@/freeswitch.pid PermissionsStartOnly=true Environment="DAEMON_OPTS=-nonat" -EnvironmentFile=-/etc/@environmentfilelocation@/freeswitch -ExecStart=@bindir@/freeswitch -u freeswitch -g freeswitch -ncwait -rp ${DAEMON_OPTS} +EnvironmentFile=-/etc/sysconfig/freeswitch +EnvironmentFile=-/etc/default/freeswitch +ExecStart=@bindir_expanded@/freeswitch -u freeswitch -g freeswitch -ncwait -rp ${DAEMON_OPTS} TimeoutSec=20s Restart=on-failure ; exec diff --git a/build/startup/install_systemd.sh.in b/build/startup/install_systemd.sh.in index 6fe5374a5c..3f77c4f8b3 100644 --- a/build/startup/install_systemd.sh.in +++ b/build/startup/install_systemd.sh.in @@ -1,9 +1,8 @@ #!/bin/bash -# @DISTRO@ installer # Niek Vlessert USER=`whoami` -DISTRO=@DISTRO@ +DISTRO=$(source /etc/os-release && echo $PRETTY_NAME) if [ $USER != "root" ] ; then SUDO=`which sudo | awk -F"/" '{print $NF}'` if [ -z $SUDO ] ; then @@ -20,36 +19,34 @@ if [ $USER != "root" ] ; then fi echo -echo "This will do several things on your @DISTRO@ installation:" +echo "This will do several things on your $DISTRO installation:" echo "- Create user freeswitch and add it to group freeswitch" FSPATH=@prefix@ if [[ $FSPATH == *"freeswitch"* ]] then echo "- Set permissions on @prefix@ and files in @bindir_expanded@" fi -echo "- Install systemd unit file" -echo "- Install /etc/@environmentfilelocation@/freeswitch" +echo "- Install systemd unit file and other required files" echo read -p "Do you want to continue? (y/n) " -n 1 -r if [[ $REPLY =~ ^[yY]$ ]] then echo echo "Installing..." - $SUDO groupadd freeswitch - if DISTRO="debian8"; then - $SUDO adduser --disabled-password --quiet --system --home @confdir@ --gecos "FreeSWITCH open source softswitch" --ingroup freeswitch freeswitch - elif DISTRO="centos7"; then - $SUDO adduser --system --home @confdir@ -c "FreeSWITCH open source softswitch" -g freeswitch freeswitch - fi + $SUDO useradd -d @confdir@ -r -U -s /bin/false -c "FreeSWITCH open source softswitch" freeswitch if [[ $FSPATH == *"freeswitch"* ]] then $SUDO chown -R freeswitch:freeswitch @prefix@ $SUDO chmod -R ug=rwX,o= @prefix@ $SUDO chmod -R u=rwx,g=rx @bindir_expanded@/* fi - $SUDO cp init/freeswitch.service /etc/systemd/system/ - $SUDO cp init/freeswitch.tmpfile /etc/tmpfiles.d/freeswitch.conf - $SUDO cp init/freeswitch.default /etc/@environmentfilelocation@/freeswitch + $SUDO cp build/startup/freeswitch.service /etc/systemd/system/ + $SUDO cp build/startup/freeswitch.tmpfile /etc/tmpfiles.d/freeswitch.conf + if [ -d /etc/sysconfig ]; then + $SUDO cp build/startup/freeswitch.default /etc/sysconfig/freeswitch + else + $SUDO cp build/startup/freeswitch.default /etc/default/freeswitch + fi $SUDO systemd-tmpfiles --clean --create $SUDO systemctl daemon-reload echo diff --git a/configure.ac b/configure.ac index a1d8010a39..4f3e0d24e6 100644 --- a/configure.ac +++ b/configure.ac @@ -773,33 +773,14 @@ case "$host" in ;; *linux*) APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt]) - if test -f /etc/os-release; then - DISTRO="$(source /etc/os-release && echo $ID$VERSION_ID)" - case "$DISTRO" in - *debian8*) - environmentfilelocation="default" - ;;& - *centos7*) - environmentfilelocation="sysconfig" - ;;& - *debian8*|*centos7*) - knowninit=false - if test -d /run/systemd/system; then - knowninit=true - AC_SUBST(DISTRO) - AC_SUBST(rundir) - AC_SUBST(environmentfilelocation) - AC_SUBST(bindir_expanded) - AC_CONFIG_FILES([build/startup/install_systemd.sh], [chmod +x build/startup/install_systemd.sh]) - AC_CONFIG_FILES([build/startup/freeswitch.service]) - fi - ;; - *) - knowninit=false - ;; - esac + systemdinit=false + if test -d /run/systemd/system; then + systemdinit=true + AC_SUBST(bindir_expanded) + AC_CONFIG_FILES([build/startup/install_systemd.sh], [chmod +x build/startup/install_systemd.sh]) + AC_CONFIG_FILES([build/startup/freeswitch.service]) fi - AM_CONDITIONAL([KNOWN_INIT], [test x$knowninit = xtrue]) + AM_CONDITIONAL([SYSTEMD_INIT], [test x$systemdinit = xtrue]) ;; esac