我的docker-compose文件中有一个由cron运行的脚本
script1:
entrypoint: /app/cron-entrypoint.sh
...
command:
- /bin/bash
- -c
- |
cat cronjob | crontab - && cron -f
cronjob包含* * * * * SHELL=bash cd /app && perl -Ilib test.pl > /proc/1/fd/1 2>&1
问题在于,{strong>我没有看到test.pl
上的STDOUT 。 STDERR
没问题。 print STDERR "STDERR\n";
也可以。
当我评论entrypoint: /app/cron-entrypoint.sh
STDOUT时出现。
cron-entrypoint.sh
内容:
#!/usr/bin/env bash
set -e
env | while read -r LINE; do
IFS="=" read VAR VAL <<< ${LINE}
sed --in-place "/^${VAR}/d" /etc/security/pam_env.conf || true
echo "${VAR} DEFAULT=\"${VAL}\"" >> /etc/security/pam_env.conf
done
exec "$@"
(使ENV
变量可用于在cron下运行的脚本)
有人能猜出为什么发生这种奇怪的行为吗?