linux下shell执行PHP不成功问题
2016-10-11 17:42
381 查看
今天在给swoole写的TCP服务器写了一个进程守护脚本,保证服务挂了或被操作系统误杀后能自动重启
然后把
然后我又继续排查。直接把shell里的
直接命令行执行,发现服务起来了,于是越来越奇怪,为什么放shell里执行就不行。。。
后来经过高人指点,在原来命令的基础上又加了句重定向输出
然后查看error.log文件,发现里面果然有报错信息,显示ifconfig command not found ,这我才想起来PHP程序中有出用到的ifconfig命令,我改成绝对路径
后来想想估计在shell脚本里执行PHP ,如果PHP里有用到
最后附上shell脚本代码
然后把
.sh脚本加入到crontab里去,我设的是每隔1min执行一次的,过了1min发现服务还没有起来,于是查看cron有没有执行我的shell脚本,用
tail -f /var/logs/cron查看发现最新的日志是很久以前的,然后我怀疑是cron没有执行,于是我有在shell脚本里输出字符串重定向到文件,结果是有输出的,证明cron执行了。。。
然后我又继续排查。直接把shell里的
/Data/local/php7/bin/php /Data/code/chat/server.php tcp
直接命令行执行,发现服务起来了,于是越来越奇怪,为什么放shell里执行就不行。。。
后来经过高人指点,在原来命令的基础上又加了句重定向输出
/Data/local/php7/bin/php /Data/code/chat/server.php tcp > /tmp/error.log 2>&1
然后查看error.log文件,发现里面果然有报错信息,显示ifconfig command not found ,这我才想起来PHP程序中有出用到的ifconfig命令,我改成绝对路径
/sbin/ifconfig过了1min服务起来了!至此,排查结束。
后来想想估计在shell脚本里执行PHP ,如果PHP里有用到
linux命令的最好写
绝对路径!
最后附上shell脚本代码
#!/bin/bash phpscriptDir=/Data/code/yoho-chat phpcmd=/Data/local/php-7.0.8/bin/php phpscriptlog=/tmp/swoole count1=`ps -fe |grep "server.php tcp" | grep -v "grep" | wc -l` count2=`ps -fe |grep "server.php websocket" | grep -v "grep" | wc -l` log() { var=$1 now=`date +%Y-%m-%d` logPath=/Data/logs/php/phpscript/ #/Data/logs/php/phpscript/ fileName="yoho_swoole.log" cd $logPath echo "phpscript name: "$var" restart time `date "+%Y-%m-%d %H:%M:%S"` " >>$fileName } if [ $count1 -lt 1 ]; then ps -eaf |grep "server.php tcp" | grep -v "grep"| awk '{print $2}'|xargs kill -9 sleep 1 $phpcmd $phpscriptDir/server.php tcp >> $phpscriptlog/tcp_server.log 2>&1 & log "server.php tcp" fi if [ $count2 -lt 1 ]; then ps -eaf |grep "server.php websocket" | grep -v "grep"| awk '{print $2}'|xargs kill -9 sleep 1 nohup $phpcmd $phpscriptDir/server.php websocket >> $phpscriptlog/websocket_server.log 2>&1 & log "server.php websocket" fi
相关文章推荐
- 解决PHP中Web程序中shell_exec()执行Shell脚本不成功问题
- linux中Cron执行shell的一个问题(子shell的调用方法)
- Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)
- Linux下Shell脚本执行PHP报错:Could not open input file
- 关于php执行shell脚本需要注意的问题
- [Linux] 刚学习shell,碰到问题.执行时总出错:unexpected operator(转载)
- 工作中遇到的一个相当有意思的问题(关于Windows和linux环境下执行PHP,ajax,javascript,flexigrid的一个莫名异常)
- 使用linux客户端执行shell脚本创建数据库初始化数据库中文乱码问题
- 解决java使用Runtime.exec执行linux复杂命令不成功问题
- 在 Linux 命令行中使用和执行 PHP 代码(二):12 个 PHP 交互性 shell 的用法
- php 执行linux shell命令
- 解决Linux下shell脚本文件执行失败问题
- linux下用户增加执行shell脚本权限问题
- linux下shell for 循环执行不等待php脚本返回
- php执行shell命令是的权限问题
- [Linux] 刚学习shell,碰到问题.执行时总出错:unexpected operator(转载)
- linux下shell中执行命令的顺序问题
- linux下shell中执行命令的顺序问题
- Linux执行Shell脚本问题
- 详细的Linux Ubuntu定时执行Php脚本及Shell脚本笔记