Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP可以';t执行终止进程的Shell脚本_Php_Bash_Shell_Sh - Fatal编程技术网

PHP可以';t执行终止进程的Shell脚本

PHP可以';t执行终止进程的Shell脚本,php,bash,shell,sh,Php,Bash,Shell,Sh,我有一个名为开启.sh的脚本。 我还有一个脚本关闭.sh turn_on.sh 开始一个过程 turn_off.sh 简单地终止进程(通过kill-9 pid) 在命令行上运行,一切正常 从php调用这些脚本根本不起作用。我试过shell\u exec,exec,system。似乎什么都不管用。任何地方都没有错误 我已经尝试了chmod777两个shell脚本。还是不行 示例代码: $val3 = exec($to_run,$val2,$val); $val2和$val中没有任何内

我有一个名为
开启.sh
的脚本。 我还有一个脚本
关闭.sh

turn_on.sh 
开始一个过程

turn_off.sh
简单地终止进程(通过kill-9 pid)

在命令行上运行,一切正常

从php调用这些脚本根本不起作用。我试过
shell\u exec
exec
system
。似乎什么都不管用。任何地方都没有错误

我已经尝试了
chmod777
两个shell脚本。还是不行

示例代码:

   $val3 = exec($to_run,$val2,$val);
$val2和$val中没有任何内容


PHP
安全模式
关闭

这可能是由于以下几个原因造成的:

1) 您通过apache运行PHP脚本,因此www数据用户没有运行这两个shell脚本的权限

2) 您通过apache运行PHP脚本,因此www数据用户没有启动或终止该进程的权限

3)


尝试在日志文件中重定向脚本的标准输出和错误输出,以便更好地进行分析。您还可以使用
set-x
获得更完整的调试跟踪。

您是否有从php解释器返回的错误?此外,在php cli进程下运行时,进程本身可能没有足够的权限来处理启动或终止其他进程。shell_exec,exec,system的响应不会返回错误。您可以发布php代码吗?我如何检查它是否有足够的权限?一些代码将非常有用。。另外,要杀死进程,您可能必须处于提升状态。你能在不去sudo的情况下杀死同样的进程吗?我在ngnix上。但是,是的,我确实看到www数据用户是需要权限的用户(有道理),但是chmoding文件不应该绕过这一需要吗?@K2xL您必须将运行脚本的权限授予ngnix用户(可能是www数据)。您必须在脚本中授予启动和终止进程的权限。您可以在sudoers文件中添加一个条目,让ngnix用户能够启动和终止进程……是否有任何方法可以在不修改sudoers文件的情况下执行此操作?如何将脚本的权限授予特定用户?@k2kl在PHP页面上运行shell脚本时,您是否尝试查看它们的输出(输出1和2重定向)?首先,最好能看到问题的确切位置(如果是许可问题还是非许可问题,…)