相关疑难解决方法(0)

如何重定向任何命令的输出?

我正在尝试编写一个简单的脚本来监视我的网络状态,而没有所有ping的输出:

ping -q -c 1 google.com > /dev/null && echo online || echo offline
Run Code Online (Sandbox Code Playgroud)

问题是,当我没有连接时,我的输出中仍然收到一条错误消息:

ping: unknown host google.com
offline
Run Code Online (Sandbox Code Playgroud)

如何在输出中保留此错误消息?

bash ping output

15
推荐指数
3
解决办法
2万
查看次数

网络断开时暂停 youtube-dl,再次连接时恢复

我正在使用 Linux Mint 20。

我正在使用带有终止开关 ( protonvpn-cli ks --on)的 vpn 。

因此,如果 vpn 连接由于某种原因断开,网络将断开连接。

当网络断开连接时,我的youtube-dl下载永久停止并出现错误

ERROR: Unable to download JSON metadata: <urlopen error [Errno -2] Name or service not known> (caused by URLError(gaierror(-2, 'Name or service not known')))
Run Code Online (Sandbox Code Playgroud)

问题是,我想youtube-dl暂停而不是关闭,并在连接恢复时恢复。

我检查了连接断开连接不起作用时的重试,但我认为这与我的问题无关。

我的配置文件看起来像

--abort-on-error
--no-warnings
--console-title
--batch-file='batch-file.txt'
--socket-timeout 10
--retries 10
--continue
--fragment-retries 10 
Run Code Online (Sandbox Code Playgroud)

当我使用批处理文件时,我不想从头开始这个过程。我只想暂停该youtube-dl过程,直到我再次连接,然后继续该过程。

我怎样才能做到这一点?

更新 1:

到目前为止,我发现的是,要暂停一个过程,我们可以执行以下操作:

$ kill -STOP 16143
Run Code Online (Sandbox Code Playgroud)

要恢复流程,我们可以执行以下操作:

$ kill -CONT 16143
Run Code Online (Sandbox Code Playgroud)

我不确定,但认为我们可以通过 ping 1 2来知道我的网络是否已启动: …

networking bash shell-script process-management linux-mint

6
推荐指数
1
解决办法
479
查看次数