尝试使用以下两个命令替换部署脚本中的两个命令:
run "cd #{current_path};RAILS_ENV=#{rails_env} script/delayed_job -p #{rails_env} -i 1 --queue=fast start >> ./log/delayed_job.fast.production.log 2>&1"
run "cd #{current_path};RAILS_ENV=#{rails_env} script/delayed_job -p #{rails_env} -i 2 start >> ./log/delayed_job.production.log 2>&1"
我添加>> ./log/delayed_job.fast.production.log 2>&1
到第一个命令>> ./log/delayed_job.production.log 2>&1
的末尾和第二个命令的末尾。这些添加的部分将获取delayed_job 命令的输出并将stdout 和stderr 重定向到每个日志文件。输出可能不会立即写入文件,可能是因为存在某种用于文件写入的缓冲区。
如果您希望输出也继续出现在屏幕上并被记录到文件中,那么您可以使用以下tee
命令:
run "cd #{current_path};RAILS_ENV=#{rails_env} script/delayed_job -p #{rails_env} -i 1 --queue=fast start | tee -a ./log/delayed_job.fast.production.log 2>&1"
run "cd #{current_path};RAILS_ENV=#{rails_env} script/delayed_job -p #{rails_env} -i 2 start | tee -a ./log/delayed_job.production.log 2>&1"