我们最近移到了AWS EC2实例和Amazon Linux发行版。
在我们的旧服务器(RH Enterprise)上,我们已经能够在后台运行一个命令( & ),并将输出redirect到日志文件,如下所示:
php /path/to/script > log.txt &
但是,这不再适用于AWS。 log.txt被创build,但是是空的。
如果我放弃&,所以任务运行在前台( php /path/to/script > log.txt ),它的工作原理和log.txt包含数据。
我在这里做错了什么和/或我能做些什么来获得脚本的输出再次logging?
提前致谢。
以下是正在发生的事情的代码示例:
[ec2-user@ip /]$ cat logtest.php <?php echo "It's big, it's heavy, it's wood!\n"; ?> [ec2-user@ip /]$ php logtest.php > log.txt [ec2-user@ip /]$ cat log.txt It's big, it's heavy, it's wood! [ec2-user@ip /]$ rm log.txt [ec2-user@ip /]$ php logtest.php > log.txt & [3] 6649 [ec2-user@ip /]$ <I waited 5 seconds and pressed enter here> [3]+ Stopped php logtest.php > log.txt [ec2-user@ip /]$ cat log.txt [ec2-user@ip /]$ ll log.txt -rw-rw-r-- 1 ec2-user ec2-user 0 Jan 3 00:30 log.txt [ec2-user@ip /]$
我很确定这与你的/etc/php.iniconfiguration有关,或者是为Amazon Linux编译php包的方式。 我在MacOS上试过,它也能正常工作。 你能比较一下你在本地的和AWS中的吗?
在两台机器上尝试以下操作。 创build一个名为logtest.sh的脚本
#!/bin/bash echo "It's big, it's heavy, it's wood!\n"
然后运行:
chmod 777 logtest.sh ./logtest.sh > log.txt &
如果它在两台机器上工作,那肯定是一个PHPconfiguration问题。
尝试用nohup运行它
nohup php /path/to/script > log.txt &
奇怪的…它适用于我,亚马逊,但Debian。
root @ domU-12-31-39-0F-31-10:/ home / try $ php i.php 它很大,很重,是木头! root @ domU-12-31-39-0F-31-10:/ home / try $ php i.php> loh.txt& [1] 8928 根@ domU的-12-31-39-0F-31-10:/家庭/ $尝试 [1] +完成php i.php> loh.txt 根@ domU的-12-31-39-0F-31-10:/家庭/ $尝试 root @ domU-12-31-39-0F-31-10:/ home / try $ cat loh.txt 它很大,很重,是木头!
你也可以使用屏幕 ? 人屏幕
你可以尝试这样做,在你的日志是在同一个目录?
echo "test" > log.txt
这可能会导致文件系统不满,只读文件系统选项。