我有一個bash腳本,它永遠循環着,它內部檢查一個環境變量,看看它是否應該運行php yii process-queue
。這個腳本是由方式泊塢窗容器中的指令,所以在PID 1我的shell腳本沒有看到環境變量的變化
輸出ps aux
:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19720 3340 ? Ss 09:26 0:00 /bin/bash /var/www/hub/process-queue-runner.sh
root 293 0.0 0.0 19936 3664 ? Ss 09:28 0:00 /bin/bash
root 1927 0.0 0.0 6012 648 ? S 09:42 0:00 sleep 0.5
root 1928 0.0 0.0 36092 3164 ? R+ 09:42 0:00 ps aux
當我在命令行中運行export RUNPROCQ=true
我預想的循環開始運行php yii process-queue
但它不 - 有一個命令,我可以在我的bash腳本中運行,因此它可以看到RUNPROCQ
環境變量值更改?
我的bash腳本稱爲process-queue-runner.sh
:
#!/bin/bash
while :
do
if [[ ${RUNPROCQ} != "false" ]]; then
php yii process-queue
fi
sleep 0.5
done
這裏是從泊塢窗,compose.yml文件中的相關部分:
procq:
image: hub_ui:latest
environment:
ENV: qa1
RUNPROCQ: "false" # this is to stop the proc q from running straight away - the refresh_db.sh script will set this to true once it has finished loading the fixtures
links:
- db:local.database.hub
- cache:local.cache.hub
command: /var/www/hub/process-queue-runner.sh
你是如何執行該腳本? – Inian
@Inian這是一個碼頭容器的命令 - 我已經將相關的docker-compose.yml部分添加到了我的問題中。 –
問題出在運行在子shell中的腳本的_execution_,而不是反映您在環境變量中的更改。也許認爲你可以來源? – Inian