我用的是dbmaker数据库,在命令行执行,./dmserver dbtest,这个时候返回数据库启动成功的一些信息,同时返回命令行。在脚本中执行也是ok的。我把dbtest用参数来表示,用php传递数据库名称,来执行,php中的文句如下:
<?php
$db_name="dbtest"
$result=exec("./start_db.sh $db_name");
echo $result;
?>
shell脚本如下:
#!bin/bash
db_name=$1
cd /home/dbmaker/db
./dmserver $db_name
改成这个样子之后,在命令行中执行php start_db.php,结果没有显示,且不返回命令行,如图:在shell的最后加上一行“echo 0",同样的结果,啥也没有。在进程中查看,这个数据库已经启动了,在后台有四个进程,而当用CTRL+C跳出时,数据库的进程只有三个了,少了一个。感觉应该是php调用的问题,因为直接执行脚本都是ok的,可以返回成功信息,且跳回命令行。phpshell数据库
<?php
$db_name="dbtest"
$result=exec("./start_db.sh $db_name");
echo $result;
?>
shell脚本如下:
#!bin/bash
db_name=$1
cd /home/dbmaker/db
./dmserver $db_name
改成这个样子之后,在命令行中执行php start_db.php,结果没有显示,且不返回命令行,如图:在shell的最后加上一行“echo 0",同样的结果,啥也没有。在进程中查看,这个数据库已经启动了,在后台有四个进程,而当用CTRL+C跳出时,数据库的进程只有三个了,少了一个。感觉应该是php调用的问题,因为直接执行脚本都是ok的,可以返回成功信息,且跳回命令行。phpshell数据库
解决方案 »
- 关于php 和apache 安装的问题! 我都装崩溃了 那个哥哥姐姐帮下忙!!
- include("xxx.php"),不显示xxx.php上的中文。
- 页面数据加载
- file_put_contents函数的问题
- PHP文件上传到服务器运行后出现的一个奇怪问题,自动把"\"改成"\\"
- UTF-8编码的程序POST数据给一个GBK编码的程序接收,应该怎么处理?
- 不知道大家有没有遇到Form被提交后,action指定的页面接收到不变量值的情况?
- 图片的存取问题?
- 这是什么原因?
- ACCESS SQL语句为何 返回空集,
- thinkphp <html:list 标签
- php 二维数组 根据show_type 的值 转成三维数组
另外,你的shell就一句话你非要写成3行,而且实现这个功能要shell干啥?直接exec("/home/dbmaker/db/dmserver $db_name");就好了
如果是一段不要加#!bin/bash头
试下在./dmserver $db_name之前返回,能否接收到正确的返回值?如果可以,看一下dmserver 这个启动脚本,是不是存在问题,没有返回或者没有结束,并且看看你传的参是否正确,一步一步调吧