【问题标题】:Excecuting script running ssh commands in the background在后台执行脚本运行 ssh 命令
【发布时间】:2012-04-17 00:02:45
【问题描述】:

我正在尝试在远程服务器上执行此脚本,并在 sudoers 文件中启用了requiretty

#!/bin/bash

value=$(ssh -tt localhost sudo bash -c hostname)
echo $value

如果我使用$ ./sample.sh & 运行脚本,它会在后台停止。只有使用fg 我才能强制脚本运行。我认为问题在于输出缺少 tty,但我该怎么办?

【问题讨论】:

  • 脚本究竟何时暂停?在ssh 命令运行之前它会被挂起吗? sudo 命令运行时它会被挂起吗? echo 内置运行时它会被暂停吗?为什么要在后台运行这个脚本呢?您必须与sudo 命令交互,除非在最奇怪的情况下...
  • 我并行运行多个脚本实例,这就是为什么我把它放在后台。有些命令需要 sudo 权限。
  • 您可以让您自己的用户帐户在运行这些特定命令时免于输入sudo 密码吗?这将大大有助于实现这一目标。
  • sudo ssh localhost 没有多大意义,bash -c hostname 实际上只是 hostname 有一个多余的大壳进程不必要地包裹它。你想完成什么只是hostname 没有提供?

标签: bash shell background-process tty


【解决方案1】:

...我该怎么办?

你可以stty -tostop

【讨论】: