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

parallel与nohup联用报错:cannot open /dev/tty问题求助

解决方案

一、解决Parallel的/dev/tty错误与SIGHUP问题

1. 禁用Parallel的TTY分配

Parallel默认会尝试为每个任务分配TTY,后台运行时无TTY会触发cannot open /dev/tty错误。在run.sh的parallel命令中添加--tty none参数:

parallel --no-notice \
         --verbose    \
         --progress    \
         -j 4          \
         --tty none    \
         --ungroup './scripts/chain_base.sh {1} {2} {3}' \
         ::: 150 200 ::: 100 200 500 1000 ::: default v1 < /dev/null

2. 避免SIGHUP信号终止进程

nohup可能无法完全隔离终端信号,改用setsid启动脚本,让进程脱离当前会话:

setsid bash scripts/run.sh > run.out 2>&1 &

或者结合nohup增强稳定性:

nohup setsid bash scripts/run.sh > run.out 2>&1 &

二、解决Tmux的Conda环境继承问题

1. 让Tmux自动加载环境配置

执行conda init bash(若使用zsh则替换为conda init zsh),然后将conda环境激活命令添加到~/.bashrc(或~/.zshrc):

conda activate your_target_env

重启tmux后会自动加载目标环境。

2. 启动Tmux时直接指定环境

用以下命令启动tmux会话,确保加载环境后再执行脚本:

tmux new-session -d -s training_session "bash -c 'source ~/.bashrc; bash scripts/run.sh > run.out 2>&1'"

3. 在脚本内直接指定Python路径

避免环境依赖问题,在chain_base.sh中使用conda环境的Python绝对路径:

# 替换为你的conda环境Python路径
/path/to/your/env/bin/python src/abc.py           \
   --num_iter ${NUM_ITER}    \
   --do_kmeans --k $k         \
   --kmeans_split $s           \
   --init_method ${INIT_METHOD} \
   --num_tokens ${TOKEN_NUM}

内容的提问来源于stack exchange,提问作者rany lin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:30:02