Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在后台使用结构放置命令在某些主机上不起作用_Python_Ssh_Fabric - Fatal编程技术网

Python 在后台使用结构放置命令在某些主机上不起作用

Python 在后台使用结构放置命令在某些主机上不起作用,python,ssh,fabric,Python,Ssh,Fabric,出于测试目的,我使用纯ssh命令行工具运行以下命令: ssh user@host "nohup sleep 100 >> /tmp/xxx 2>&1 < /dev/null &" 这正是我所期望的。但是如果我检查主机中运行的进程,sleep 100不在其中。更糟糕的是:这个问题只发生在我的一些主机上 我还添加了一些其他信息,通过在Fabric要运行的命令中添加“\necho$!”来显示创建了什么进程。据报道如下: [user@host] run: noh

出于测试目的,我使用纯ssh命令行工具运行以下命令:

ssh user@host "nohup sleep 100 >> /tmp/xxx 2>&1 < /dev/null &"
这正是我所期望的。但是如果我检查主机中运行的进程,
sleep 100
不在其中。更糟糕的是:这个问题只发生在我的一些主机上

我还添加了一些其他信息,通过在Fabric要运行的命令中添加“\necho$!”来显示创建了什么进程。据报道如下:

[user@host] run: nohup sleep 100 >> /tmp/xxx 2>&1 < /dev/null &
echo $!
[user@host] out: 30935
我是否可以增加ssh守护进程生成的日志记录量,以便至少可以看到通过ssh请求的命令

我知道Fabric在中运行命令时存在一些问题,但这似乎不是我的问题。Fabric/ssh/background进程是否还有其他问题

编辑 我已在所有系统上安装了
dtach
。Ubuntu8.04中打包的版本太旧了,不允许通过ssh调用
dtach-n
(终端问题),因此我不得不下载并编译该版本。完成此操作后,我可以使用Fabric如下方式运行命令:

[user@host]运行:dtach-n/tmp/Y sleep 100>/tmp/xxx 2>&1

这在所有主机上都可以正常工作。但这不符合我的设想,因为:

  • dtach创建两个进程:一个用于dtach本身,另一个用于正在运行的进程
  • 我无法获取正在启动的进程的pid

您可能遇到了臭名昭著的。这些问题的简易解决方法是使用
pty=False

运行任务。看起来您是对的。我已将测试结果添加到github问题中。使用
pty=False
问题消失了,但我仍然有一种不安的感觉。您可以继续关注这个问题,这看起来像是ssh错误,而不是结构错误。您还可以投票选择一个有用的答案;)我也遇到过同样的问题,只要在运行命令之前没有“with cd('SomeDir'),这个解决方案就会有所帮助。虽然这可以通过prepend dir简单地解决,但仍然想知道为什么。就像@MartianPuss一样,这只在我删除了“with cd(SomeDir)”命令后对我有效。
[user@host] run: nohup sleep 100 >> /tmp/xxx 2>&1 < /dev/null &
echo $!
[user@host] out: 30935
Dec  6 09:12:09 host sshd[2835]: Accepted publickey for user from 67.133.172.14 port 37732 ssh2
Dec  6 09:12:09 host sshd[2838]: pam_unix(sshd:session): session opened for user user by (uid=0)
Dec  6 09:12:10 host sshd[2838]: pam_unix(sshd:session): session closed for user user