命令在控制台中能正常执行但在shell脚本中却无法执行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令在控制台中能正常执行但在shell脚本中却无法执行?相关的知识,希望对你有一定的参考价值。
是ffmpeg命令,版本为4.1.6。
我在控制台中启动ffmpeg命令,其执行就正常不会僵住。
但如果我用脚本启动ffmpeg命令,其执行就会僵住不会继续执行!
怎么会有这么怪的事,我猜是ffmpeg汇编代码与shell脚本不兼容,但shell的兼容性又是何等强!
我是这样启动脚本的: user$ ./sh.sh&
启动脚本后我查看了ffmpeg进程,进程是已经启动了的,只是其运行会一直僵住不继续执行。
查看脚本文件是dos格式还是unix格式
你是在用虚拟机吗?你的文件安装目录,检查 /etc/fstab 文件分区文件
另外《Linux就该这么学》中有个Linux命令大全可以查询命令 参考技术A 最前面加一个nohup 试一试?
用于发送邮件的 php 脚本在通过浏览器执行时不起作用,但在从命令行执行时工作正常
【中文标题】用于发送邮件的 php 脚本在通过浏览器执行时不起作用,但在从命令行执行时工作正常【英文标题】:php script for sending mail wont work when executed via browser but work fine when executed from command line 【发布时间】:2013-10-29 14:36:25 【问题描述】:我写了一个小的 PHP 脚本:
<?php
$phpPath = shell_exec("which php");
print "$phpPath\n";
$uid = posix_getuid();
$userinfo = posix_getpwuid($uid);
print_r($userinfo );
print "\n";
$to = "my_user_name@my_company_mail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "do-not-reply@akamai.com";
$headers = "From:" . $from;
$res = mail($to,$subject,$message,$headers);
print_r(error_get_last());
if($res)
echo "Mail Sent.\n";
else
echo "Mail was'nt Sent\n";
?>
让我抓狂的是,当我从命令行执行此脚本时,它运行良好: /usr/bin/php
数组 ( [名称] => 守护进程 [密码] => x [uid] => 1 [gid] => 1 [gecos] => 守护进程 [目录] => /usr/sbin [外壳] => /bin/sh )
邮件已发送。
但是当我从远程浏览器执行它时,我得到的是:
/usr/bin/php
数组 ( [名称] => 守护进程 [密码] => x [uid] => 1 [gid] => 1 [gecos] => 守护进程 [目录] => /usr/sbin [外壳] => /bin/sh )
邮件未发送
有什么想法吗? 提前 10 倍 :)
【问题讨论】:
【参考方案1】:命令行PHP和PHP不使用相同的php.ini,请检查它们之间是否有区别。
More information on php.ini here
Related question on SO here
【讨论】:
我已经将cli php.ini 复制到lampp 目录,没有任何变化,所有的邮件配置都一样...以上是关于命令在控制台中能正常执行但在shell脚本中却无法执行?的主要内容,如果未能解决你的问题,请参考以下文章
用于发送邮件的 php 脚本在通过浏览器执行时不起作用,但在从命令行执行时工作正常