wandoubaba / 2023-06-30
Debian
11使用了systemd作为启动管理器,而不再使用sysvinit,所以我们不去/etc/init.d/
目录中去搞,而是在/etc/systemd/system/
里面搞。
假设FreeSWITCH的安装目录是/usr/local/freeswitch
。
touch /etc/systemd/system/freeswitch.service
vim /etc/systemd/system/freeswitch.service
文件内容参考如下:
[Unit]
Description=FreeSWITCH
After=network.target network-online.target
Wants=network-online.target
[Service]
User=freeswitch
Group=freeswitch
WorkingDirectory=/usr/local/freeswitch
ExecStart=/usr/local/freeswitch/bin/freeswitch
ExecStop=/usr/local/freeswitch/bin/freeswitch -stop
ExecStartPre=/bin/sleep 3
Restart=always
[Install]
WantedBy=default.target
其中[Service]
段的ExecStartPre=/bin/sleep 3
表示在启动FreeSWITCH前,先等待3秒,这一句可根据实际环境酌情使用。
保存freeswitch.service
文件并退出。
## 创建freeswith用户组
groupadd -r freeswitch
## 创建freeswitch用户
useradd -r -g freeswitch -s /bin/false -d /usr/local/freeswitch -c "FreeSWITCH" freeswitch
## 更改freeswitch程序目录的权限
sudo chown -R freeswitch:freeswitch /usr/local/freeswitch
## 注册freeswitch服务
sudo systemctl daemon-reload
## 让freeswitch随系统自动启动
sudo systemctl enable freeswitch
现在名为freeswitch的系统服务已经注册完成,可以使用下面的系统命令管理freeswitch的启动与停止了:
## 启动服务
sudo systemctl start freeswitch
## 重新启动服务(停止再启动)
sudo systemctl restart freeswitch
## 停止服务
sudo systemctl stop freeswitch
## 查看服务状态
sudo systemctl status freeswitch