【发布时间】: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