You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中用nohup启动脚本报错:无法识别参数nohup

问题原因解析

1. 启动报错的核心原因

你的容器默认ENTRYPOINT是simple_init.py脚本,Docker中当使用数组形式的exec格式CMD时,CMD的所有内容会被当作ENTRYPOINT的命令行参数传递。你配置的CMD ["nohup","/bin/scripts/run_test.sh","&"],会让nohup、/bin/scripts/run_test.sh、&全部成为simple_init.py的参数,而该脚本并不支持这些参数,因此抛出unrecognized arguments的错误。

2. 不用nohup时容器提前终止的原因

当你将不带&的命令设为ENTRYPOINT时,run_test.sh会在前台执行。如果脚本内部是通过后台方式启动jar进程(比如java -jar xxx.jar &),脚本执行到这一行后会继续推进,直到整个脚本执行完毕,此时作为ENTRYPOINT的脚本进程结束,Docker会直接终止容器,导致后台运行的jar进程被强制杀死,无法完成预期操作。

你试图用nohup和&让脚本后台运行,本质是想让进程脱离前台生命周期,避免容器随脚本结束而终止,但因为容器默认ENTRYPOINT的存在,这个逻辑被打断,反而触发了参数错误。

内容的提问来源于stack exchange,提问作者Rajeev Akotkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:35:22