繁体   English   中英

Freeswitch的系统启动不一致

[英]Inconsistent systemd startup of freeswitch

我从systemd运行freeswitch有两个问题:

编辑2-我已经将慢启动问题移到了这里( Freeswitch在centos 7.1上启动时在check_ip上暂停了 ),尽管它们可能相关,但作为独立版本可能很好。

编辑-我注意到了别的东西。 从那里运行时,请查看从终端输出捕获的以下几行。 差距是4分钟,但是大约10分钟之前。 我注意到了这是因为我试图找出为什么8021端口要花几分钟才能接受fs_cli连接。 为什么会这样? 以前从未发生过,我已经安装了FS盒子。 这对1.7和今天的1.6都执行相同的操作。

 2015-10-23 12:57:35.280984 [DEBUG] switch_scheduler.c:249 Added task 1 heartbeat (core) to run at 1445601455 2015-10-23 12:57:35.281046 [DEBUG] switch_scheduler.c:249 Added task 2 check_ip (core) to run at 1445601455 2015-10-23 13:01:31.100892 [NOTICE] switch_core.c:1386 Created ip list rfc6598.auto default (deny) 
  1. 有时我会开始双重流程。 这是发生这种情况后的状态行:
 # systemctl status freeswitch -l freeswitch.service - freeswitch Loaded: loaded (/etc/systemd/system/multi-user.target.wants/freeswitch.service) Active: activating (start) since Fri 2015-10-23 01:31:53 BST; 18s ago Main PID: 2571 (code=exited, status=0/SUCCESS); : 2742 (freeswitch) CGroup: /system.slice/freeswitch.service ├─usr/bin/freeswitch -ncwait -core -db /dev/shm -log /usr/local/freeswitch/log -conf /usr/local/freeswitch/conf -run /usr/local/freeswitch/run └─usr/bin/freeswitch -ncwait -core -db /dev/shm -log /usr/local/freeswitch/log -conf /usr/local/freeswitch/conf -run /usr/local/freeswitch/run Oct 23 01:31:53 fswitch-1 systemd[1]: Starting freeswitch... Oct 23 01:31:53 fswitch-1 freeswitch[2742]: 2743 Backgrounding. 

并且有两个进程正在运行。

  1. PID文件有时写得不够快,无法由systemd进程将其拾取,但是到我看到此文件时(无论我运行命令的速度如何),到我这样做时它始终存在:
 Oct 23 02:00:26 arribacom-sbc-1 systemd[1]: PID file /usr/local/freeswitch/run/freeswitch.pid not readable (yet?) after start. 

现在,在(2)中,一切似乎都正常,我可以使用以下命令关闭freeswitch进程

systemctl stop freeswitch

没有任何问题,但是在(1)中,它似乎什么都没做。

我想知道两者是否相关,并且freeswitch正在向systemd报告该程序实际上在运行之前。 然后systemd正在启动另一个进程,或者(有时)没有启动。

谁能提供任何指针? 我曾尝试向freeswitch用户列表发送邮件,但是尽管已注册,但我根本无法在列表中显示任何电子邮件(但这是另一个问题)。

*更新*如果删除-ncwait,似乎可以改善双重启动过程,但是仍然收到无法读取的PID警告,因此,我仍然确定存在问题,可能是在计时(?)附近。

我使用的是Centos 7.1,而我的freeswitch版本是

 FreeSWITCH Version 1.7.0+git~20151021T165609Z~9fee9bc613~64bit (git 9fee9bc 2015-10-21 16:56:09Z 64bit) 

这是我的freeswitch.service文件(有些事情已经注释掉,直到我了解它们的作用以及它们可能产生的副作用):

 [Unit] Description=freeswitch After=syslog.target network.target # [Service] Type=forking PIDFile=/usr/local/freeswitch/run/freeswitch.pid PermissionsStartOnly=true ExecStart=/usr/bin/freeswitch -nc -core -db /dev/shm -log /usr/local/freeswitch/log -conf /u ExecReload=/usr/bin/kill -HUP $MAINPID #ExecStop=/usr/bin/freeswitch -stop TimeoutSec=120s # WorkingDirectory=/usr/bin User=freeswitch Group=freeswitch LimitCORE=infinity LimitNOFILE=999999 LimitNPROC=60000 LimitSTACK=245760 LimitRTPRIO=infinity LimitRTTIME=7000000 #IOSchedulingClass=realtime #IOSchedulingPriority=2 #CPUSchedulingPolicy=rr #CPUSchedulingPriority=89 #UMask=0007 # [Install] WantedBy=multi-user.target 

在当前的master分支中,从debian/目录中获取两个文件:

freeswitch-systemd.freeswitch.service应该作为/lib/systemd/system/freeswitch.service

freeswitch-systemd.freeswitch.tmpfile应该作为/usr/lib/tmpfiles.d/freeswitch.conf

您可能需要修改路径,或构建FreeSWITCH以使用标准Debian路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM