我的nat123运行在安卓手机容器的centos7中,可能由于mono编译安装各种问题忽略,另外由于公司网络不稳定,导致nat123各种掉线甚至内存错误,因此需要定时重启nat123服务,如果你的应用很在意可用率不建议使用本方式。
(1).定时任务执行shell脚本
##关闭nat123相关进程 ps -ef |grep nat123linux |awk '{print $2}'|xargs kill -9 ##进入nat123执行目录 cd /root ##启动nat123相关进程 nohup mono /root/nat123linux.sh service >/root/out_put.log 2>&1 &
你可以用宝塔添加定时任务1小时执行1次,上面的脚本你可以自己改下目录位置即可。
(2).PHP执行shell脚本
//1.配置nat123目录和执行文件和日志文件 $nat123_path = '/root'; $nat123_exec = $nat123_path . DIRECTORY_SEPARATOR . 'nat123linux.sh'; $nat123_out_put = $nat123_path . 'out_put.log'; //2.重置所在目录 chdir($nat123_path); //3.关闭运行的Nat123进程 $stop_cmd = "ps -ef |grep nat123linux |awk '{print $2}'|xargs kill -9"; $res1 = exec($stop_cmd, $output, $return); //4.重新启动Nat123进程 $start_cmd = "nohup mono $nat123_exec service >{$nat123_out_put} 2>&1 &"; $res2 = exec($start_cmd, $output, $return);
使用定时任务定时执行php即可,exec函数一般被禁用,建议自己开启下
提示:在使用脚本前至少手动执行nat123的脚本登录一次,否则无法使用自动登录