无法通过SSH执行屏幕:必须连接到终端
我有一组服务器,我想在每个服务器上启动一个专用的Python脚本。 我的计算机名称列表存储在$ Computers变量中,为了部署我的脚本,我正在尝试使用SSH连接并启动屏幕实例,
for ((i = 0; i < ${#COMPUTERS[@]}; i++)); do
echo ""
echo ">> Start simulations on computer ${COMPUTERS[i]}..."
ssh -o "StrictHostKeyChecking=accept-new" ${COMPUTERS[i]} "
cd ${WORKING_DIRECTORY}/compressor && git pull;
screen -S ${SCREEN_NAME} -X quit > /dev/null;
echo 'Start screen ${SCREEN_NAME} on ${COMPUTERS[i]}';
screen -dmS ${SCREEN_NAME} ' \
export LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}:${WORKING_DIRECTORY}/venv/lib/\" && \
${WORKING_DIRECTORY}/venv/bin/python ${WORKING_DIRECTORY}/deployment/simulations/simulate.py ${i} > ~/output_${COMPUTERS[i]}.txt \
';
screen -r;
"
echo "Done for ${COMPUTERS[i]}"
done
但是没有启动屏幕实例,我唯一的消息是:
启动屏幕sim在pc-elec.priv
上
必须连接到终端。
I have a set of servers and I want to launch a dedicated Python script on each one.
My computer name list is stored into a $COMPUTERS variable, and to deploy my script, I am trying to connect using SSH and launch a screen instance
for ((i = 0; i < ${#COMPUTERS[@]}; i++)); do
echo ""
echo ">> Start simulations on computer ${COMPUTERS[i]}..."
ssh -o "StrictHostKeyChecking=accept-new" ${COMPUTERS[i]} "
cd ${WORKING_DIRECTORY}/compressor && git pull;
screen -S ${SCREEN_NAME} -X quit > /dev/null;
echo 'Start screen ${SCREEN_NAME} on ${COMPUTERS[i]}';
screen -dmS ${SCREEN_NAME} ' \
export LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}:${WORKING_DIRECTORY}/venv/lib/\" && \
${WORKING_DIRECTORY}/venv/bin/python ${WORKING_DIRECTORY}/deployment/simulations/simulate.py ${i} > ~/output_${COMPUTERS[i]}.txt \
';
screen -r;
"
echo "Done for ${COMPUTERS[i]}"
done
But, no screen instance is launched, and the only message I have is :
Start screen sim on pc-elec.priv
Must be connected to a terminal.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要强制伪终端。
ssh man page
例如:
You need to force Pseudo terminal.
SSH Man page
For Example: