gpt4 book ai didi

linux - Docker 将程序作为守护进程运行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:24 28 4
gpt4 key购买 nike

我有一个在 docker (squid) 中运行的程序,它仅在以守护进程模式运行时按需要执行。

我的问题是,给定一个 sh 入口点,如何在不退出 docker 的情况下让程序在后台运行?

这是我的(简化的)入口点:

#!/bin/bash
set -e

# default behaviour is to launch squid
if [[ -z ${1} ]]; then
if [[ ! -d ${SQUID_CACHE_DIR}/00 ]]; then
echo "Initializing cache..."
$(which squid) -N -f /etc/squid4/squid.conf -z
fi
echo "Starting squid..."
exec $(which squid) -f /etc/squid4/squid.conf -YCd 1
else
exec "$@"
fi

最佳答案

通常,当您执行一个命令并希望在注销后继续运行时,您会使用“nohup”命令,如下所示:

nohup [COMMAND] &

您可能应该考虑在容器启动时启动 squid。您可以在 Dockerfile 中定义它。 Dockerfiles 告诉“docker build”命令如何创建图像。这样,当您使用“docker run”启动容器时,您的应用程序将立即启动,而无需与容器进行交互。

关于linux - Docker 将程序作为守护进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39512902/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com