如何解决尝试自动执行从 Windows 到 Linux (BusyBox) 控制台的任务,该控制台需要用户交互才能终止
我有一个 Powershell 脚本,它会自动通过 SSH 连接到 Linux 主机(运行 Busybox 的 ESXI 服务器)并运行单个命令 (./my_script.sh
),该命令捕获 ESXI 服务器上的一些网络流量。但是,此脚本会等待用户输入 (CTRL + C) 以退出脚本。
我曾尝试使用 Posh-SSH 模块 (Invoke-SSHCommand -SSHSession $session -Command $command
) 语法以及 Plink 模块 (plink -batch *servername* -pw *userPassword* *command*
) 但这些命令总是执行并将我返回到 shell,它们从不等待用户互动。
当然,如果我直接在 ESXI 服务器上运行它,脚本将等待 CTRL + C 命令终止。
有人知道解决这个问题的方法吗?
解决方法
On 选项是 timeout
命令,它应该出现在 上,为您正在运行的任何命令设置运行时限制。例如,如果您需要 tcpdump
捕获 20 秒的数据包,您可以运行:
timeout 20 tcpdump
您还可以使用 --signal
标志指定要发送到进程的特定信号,如果您使用的命令在不同信号之间具有不一致的行为(查看信号列表,请使用 kill -l`):
timeout --signal INT 20 tcpdump
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。