Posted on Leave a comment

Freeswitch init via SystemD on Debian Unstable

I ran into an issue when I upgraded my Debian unstable box to systemd. I have FreeSWITCH on this box and the systemd initiation is not working.


Dec 14 18:05:44 mail systemd[1]: freeswitch.service: Start operation timed out. Terminating.
Dec 14 18:05:48 mail systemd[1]: Failed to start freeswitch.
Dec 14 18:05:48 mail systemd[1]: freeswitch.service: Unit entered failed state.
Dec 14 18:05:48 mail systemd[1]: freeswitch.service: Failed with result 'timeout'.
Dec 14 18:05:48 mail systemd[1]: freeswitch.service: Service hold-off time over, scheduling restart.
Dec 14 18:05:48 mail systemd[1]: Stopped freeswitch.
Dec 14 18:05:48 mail systemd[1]: Starting freeswitch...
Dec 14 18:05:50 mail systemd[1]: freeswitch.service: PID file /run/freeswitch/freeswitch.pid not readable (yet?) after start: No such file or directory

After much research and trial and error, I finally found the solution. I had to change the PIDFile statement of the freeswitch.service file.


[Unit]
Description=freeswitch
After=syslog.target network.target local-fs.target

[Service]
; service
Type=forking
;PIDFile=/run/freeswitch/freeswitch.pid
PIDFile=/usr/local/freeswitch/run/freeswitch.pid
;PermissionsStartOnly=true
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/local/freeswitch/bin/freeswitch -u freeswitch -g freeswitch -ncwait $DAEMON_OPTS

;ExecStart=/usr/local/freeswitch/bin/freeswitch -u freeswitch -g freeswitch -ncwait -nonat -rp
TimeoutSec=45s
Restart=on-failure
; exec
WorkingDirectory=/usr/local/freeswitch
;User=freeswitch
User=root
Group=daemon
;Group=freeswitch
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
;LimitSTACK=240
LimitRTPRIO=infinity
LimitRTTIME=7000000
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007

[Install]
WantedBy=multi-user.target

Posted on Leave a comment

Systemd in Debian

I notice that my raid array is not starting up properly after I boot a new kernel, 4.3. I figured out that I could manually assemble the array with the command below. However, I want to automate the process.

mdadm --assemble --verbose /dev/md127 /dev/sdb1 /dev/sdc1

The solution is making the necessary changes in mdadm.conf file so that the system can see the array following a reboot. Here is my mdadm.conf file.


#mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
#DEVICE partitions
DEVICE /dev/sd[bcdjkl]1

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md127 metadata=0.90 UUID=a42d6399:f6d2b49c:924717a0:72ea5865 devices=/dev/sdb1,/dev/sdc1

# This file was auto-generated on Mon, 16 Jul 2012 06:37:54 -0400
# by mkconf 3.1.4-1+8efb9d1+squeeze1