如何从远程执行的命令中获取PID?

茉莉花·洛根

如果我在Bash中执行以下操作,那么我将获得远程启动的PID mbuffer,即使mbuffer仍在运行,也可以将终端取回,这正是我想要的。

read -r pid < <(ssh 10.10.10.47 'nohup /opt/omni/bin/mbuffer -4 -s 128k -m 2G -v 0 -q -I 8023 >/tmp/mtest </dev/null 2>/tmp/mtest.err & echo $!')

echo $pid

现在我想在Perl中做同样的事情,所以我尝试

use Capture::Tiny 'capture';

my ($stdout, $stderr, $exit) = capture {
    system("read -r pid < <(ssh 10.10.10.47 'nohup /opt/omni/bin/mbuffer -4 -s 128k -m 2G -v 0 -q -I 8023 >/tmp/mtest </dev/null 2>/tmp/mtest.err & echo $!'); echo \$pid");
};

print "stdout $stdout\n";
print "stderr $stderr\n";
print "exit   $exit\n";

在这里,我本来希望$stdout可以从上一条echo命令中获得PID ,但是却一无所获。

如何获得mbuffer在Perl中远程执行的PID,以使Perl脚本mbuffer在继续之前不等待退出?

茉莉花·洛根

问题似乎是不可能一次执行两个命令,system()或者不可能一次执行两个命令,但是不可能从最后一个命令获得输出。

创建本地帮助程序脚本解决了该问题。

#!/usr/bin/bash

# Redirection of stdin and stderr to files (preventing them from holding
# handles that connect, eventually, to the terminal).

read -r pid < <(ssh $1 "/usr/gnu/bin/nohup /opt/omni/bin/mbuffer -4 -s 128k -m 2G -v 0 -q -I 8023 >/tmp/mtest$2 </dev/null 2>/tmp/mtest.err & echo \$!")

echo $pid

而在Perl中

my ($stdout, $stderr, $exit) = capture {
     system("/comp/mbuffer-zfs-listen.sh 10.10.10.47 11");
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从远程执行的命令中获取PID?

来自分类Dev

如何使用 PuTTY 从远程 SSH 服务器上的 PHP 中执行的命令获取结果?

来自分类Dev

如何在远程服务器上执行多个命令并获取输出?

来自分类Dev

在管道中较早获取命令的PID

来自分类Dev

如何获取使用Python在Shell中执行的命令和参数

来自分类Dev

如何获取命令执行过程中溢出的终端文本?

来自分类Dev

如何在golang CLI中的远程计算机上执行命令?

来自分类Dev

执行远程命令

来自分类Dev

执行远程sqlite命令

来自分类Dev

执行远程命令

来自分类Dev

如何从命令行获取GNU / Linux中给定进程的父PID?

来自分类Dev

如何在pstree命令中获取应用程序的第一个分支PID?

来自分类Dev

如何通过SSH执行远程Shell脚本,并在该脚本中要求该命令的命令提示输入密码?

来自分类Dev

在C#中的远程计算机上执行命令时获取错误代码1

来自分类Dev

在远程计算机上的Shell脚本中执行命令,并在本地计算机上获取输出

来自分类Dev

如何为ssh命令设置超时并获取远程命令的结果

来自分类Dev

如何通过此pid执行的文件获取pid及其可执行路径信息?

来自分类Dev

如何使用sftp命令获取远程目录中存在的文件数

来自分类常见问题

如何使用POSIX在C ++中执行命令并获取命令的输出?

来自分类Dev

如何从python脚本打开cygwin,执行命令并从文件中的命令行获取数据

来自分类Dev

获取在后台执行的最后两个命令的pid并执行操作

来自分类常见问题

如何通过带参数的ssh执行远程命令?

来自分类Dev

如何在特定shell下执行远程pysftp命令

来自分类Dev

如何从Java应用程序远程执行Hadoop命令

来自分类Dev

我如何通过ssh执行命令,远程是Windows

来自分类Dev

如何使用shell脚本在远程机器上执行linux命令

来自分类Dev

如何使用 bash 脚本在远程主机上执行命令

来自分类Dev

如何修复这个使用 ssh 执行远程命令的循环

来自分类Dev

在远程Powershell会话中执行交互命令不起作用

Related 相关文章

  1. 1

    如何从远程执行的命令中获取PID?

  2. 2

    如何使用 PuTTY 从远程 SSH 服务器上的 PHP 中执行的命令获取结果?

  3. 3

    如何在远程服务器上执行多个命令并获取输出?

  4. 4

    在管道中较早获取命令的PID

  5. 5

    如何获取使用Python在Shell中执行的命令和参数

  6. 6

    如何获取命令执行过程中溢出的终端文本?

  7. 7

    如何在golang CLI中的远程计算机上执行命令?

  8. 8

    执行远程命令

  9. 9

    执行远程sqlite命令

  10. 10

    执行远程命令

  11. 11

    如何从命令行获取GNU / Linux中给定进程的父PID?

  12. 12

    如何在pstree命令中获取应用程序的第一个分支PID?

  13. 13

    如何通过SSH执行远程Shell脚本,并在该脚本中要求该命令的命令提示输入密码?

  14. 14

    在C#中的远程计算机上执行命令时获取错误代码1

  15. 15

    在远程计算机上的Shell脚本中执行命令,并在本地计算机上获取输出

  16. 16

    如何为ssh命令设置超时并获取远程命令的结果

  17. 17

    如何通过此pid执行的文件获取pid及其可执行路径信息?

  18. 18

    如何使用sftp命令获取远程目录中存在的文件数

  19. 19

    如何使用POSIX在C ++中执行命令并获取命令的输出?

  20. 20

    如何从python脚本打开cygwin,执行命令并从文件中的命令行获取数据

  21. 21

    获取在后台执行的最后两个命令的pid并执行操作

  22. 22

    如何通过带参数的ssh执行远程命令?

  23. 23

    如何在特定shell下执行远程pysftp命令

  24. 24

    如何从Java应用程序远程执行Hadoop命令

  25. 25

    我如何通过ssh执行命令,远程是Windows

  26. 26

    如何使用shell脚本在远程机器上执行linux命令

  27. 27

    如何使用 bash 脚本在远程主机上执行命令

  28. 28

    如何修复这个使用 ssh 执行远程命令的循环

  29. 29

    在远程Powershell会话中执行交互命令不起作用

热门标签

归档