我正在尝试使用此代码从webrtc启动'peerconnection_server'作为守护进程:
#!/bin/sh
# Start/stop server2
NAME=peerserver2
PIDFILE=/var/www/peerserver2.pid
CMD=/var/www/temp/webrtc/trunk/out/Debug/peerconnection_server
do_start() {
start-stop-daemon --start --background --pidfile $PIDFILE --exec $CMD --make-pidfile
}
do_stop() {
start-stop-daemon --stop --pidfile $PIDFILE
}
case "$1" in
start)
echo -n "Starting $NAME \n"
do_start
;;
stop)
echo -n "Stopping $NAME \n"
do_stop
;;
restart)
echo -n "Restarting $NAME \n"
do_stop
do_start
;;
*)
echo -n "Usage: /etc/init.d/server2 {start|stop|restart} \n"
exit 2
;;
esac
exit 0
它是在server2 start
命令之后启动的,我在ps -aux | grep server
中看到了此过程,但peerconnection_server
效果不佳。当我尝试连接到我的peerconnection_server
时,它接受我的sign_in
请求,但它没有做它应该做的事情。
但是如果我从locale执行相同的命令:
/var/www/temp/webrtc/trunk/out/Debug/peerconnection_server
......它完美无缺。
任何人都可以帮我处理这个案子吗?也许我需要设置选项?
同样在我的peerconnection_server
中,我使用了来自c ++的system()
命令。
该程序还使用端口8888.
谢谢。
更新
我通过'screen'命令解决了这个问题。只是用无限循环写了bash-script。在whis循环中,如果proccesses不包含它,我会启动新屏幕。它起作用,但我认为这不是一个优雅的决定。