为命令执行 shell 脚本时,Supervisor std out 日志为空
Supervisor std out log is empty when executing shell script for command
我的主管日志是空的,我不知道如何填充它。
我有一个简单的测试bash脚本
#!/usr/bin/env bash
echo "STARTING SCRIPT"
while read LINE
do
echo ${LINE} 2>&1
done < "${1:-/dev/stdin}"
exit 0
还有我的supervisor.conf
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord]
logfile=/var/log/supervisor/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/var/run/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200
umask=022
nocleanup=false
[rpcinterface:supervisor]
supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
[program:print-lines]
command=gearman -h 127.0.0.1 -p 4730 -w -f print-lines -- /var/www/html/myapp/bash/printlines.sh 2>&1
process_name=print-lines-worker
numprocs=1
startsecs = 0
autorestart = false
startretries = 1
user=root
stdout_logfile=/var/www/html/myapp/var/log/supervisor_print_lines_out.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/var/www/html/myapp/var/log/supervisor_print_lines_err.log
stderr_logfile_maxbytes=10MB
然后我通过php脚本
执行这个作业
$gmClient= new GearmanClient();
$gmClient->addServer();
# run reverse client in the background
$jobHandle = $gmClient->doBackground("print-lines", $domains);
var_dump($jobHandle);
所以接下来会发生什么。
作业被执行
myapp-dev: /var/www/html/myapp $ gearadmin --status
print-lines 1 1 1
但是两个日志文件都是空的...我至少希望某处会写 "STARTING SCRIPT" 之类的东西,但一切都是空的。
我做错了什么?我是否检查了错误的日志文件?
如果您需要任何其他信息,请告诉我,我会提供。谢谢
我找到了解决方案或至少找到了解决方法。我所做的是关注
我的 supervisor.conf 命令现在看起来像这样
command=gearman -h 127.0.0.1 -p 4730 -w -f print-lines -- bash -c "/var/www/html/myApp/bash/printlines.sh > /var/www/html/myApp/var/log/printlines.log 2>&1"
所以 shell 现在正在 shell 脚本执行时写入日志文件
我的主管日志是空的,我不知道如何填充它。 我有一个简单的测试bash脚本
#!/usr/bin/env bash
echo "STARTING SCRIPT"
while read LINE
do
echo ${LINE} 2>&1
done < "${1:-/dev/stdin}"
exit 0
还有我的supervisor.conf
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord]
logfile=/var/log/supervisor/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/var/run/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200
umask=022
nocleanup=false
[rpcinterface:supervisor]
supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
[program:print-lines]
command=gearman -h 127.0.0.1 -p 4730 -w -f print-lines -- /var/www/html/myapp/bash/printlines.sh 2>&1
process_name=print-lines-worker
numprocs=1
startsecs = 0
autorestart = false
startretries = 1
user=root
stdout_logfile=/var/www/html/myapp/var/log/supervisor_print_lines_out.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/var/www/html/myapp/var/log/supervisor_print_lines_err.log
stderr_logfile_maxbytes=10MB
然后我通过php脚本
执行这个作业$gmClient= new GearmanClient();
$gmClient->addServer();
# run reverse client in the background
$jobHandle = $gmClient->doBackground("print-lines", $domains);
var_dump($jobHandle);
所以接下来会发生什么。 作业被执行
myapp-dev: /var/www/html/myapp $ gearadmin --status
print-lines 1 1 1
但是两个日志文件都是空的...我至少希望某处会写 "STARTING SCRIPT" 之类的东西,但一切都是空的。
我做错了什么?我是否检查了错误的日志文件?
如果您需要任何其他信息,请告诉我,我会提供。谢谢
我找到了解决方案或至少找到了解决方法。我所做的是关注
我的 supervisor.conf 命令现在看起来像这样
command=gearman -h 127.0.0.1 -p 4730 -w -f print-lines -- bash -c "/var/www/html/myApp/bash/printlines.sh > /var/www/html/myApp/var/log/printlines.log 2>&1"
所以 shell 现在正在 shell 脚本执行时写入日志文件