通过终端启动 Chromium,等待一段时间,然后关闭它

通过终端启动 Chromium,等待一段时间,然后关闭它

我的简单命令行存在问题: chromium-browser www.youtube.com -start-fullscreen; sleep 1m; pkill --oldest chromium

正如您所想的那样,我想使用 启动 Chromium chromium-browser www.youtube.com -start-fullscreen(单独尝试过,成功了)然后使用 等待 1 分钟:sleep 1m 然后使用 关闭浏览器pkill --oldest chromium(也单独尝试过,成功了)。所有这些都在终端上完成。

不幸的是我的脚本不起作用。它确实启动了我的 Chromium www.youtube.com,但一分钟后并没有关闭它。

我相信这可能是因为当浏览器启动时,终端只监听软件而不能执行任何命令,对吗?

那么,我该如何启动这个脚本以便它能够通过浏览器启动?

提前致谢

答案1

你说得对,当你在前台运行某些东西时——除非它自己分叉——它会阻塞流程。答案在逻辑上是将 Chromium 留在后台,并允许其余命令继续运行。你可以用一个&

chromium-browser ... & sleep 1m; pkill --oldest chromium

在处理像 Chrom{e,ium} 这样复杂的问题时,还需要考虑其他因素。它们往往会分叉成庞大的进程,而杀死头部可能无法杀死所有进程。如果您从上述情况中得到任何好处,我会切换到killall chromium

话虽如此,我刚刚学会了这个timeout命令。是的,仍在学习中。这简化了语法,甚至可以让您在前台留下一些东西(对于交互式终端很有用)。

timeout 1m chromium-browser www.youtube.com -start-fullscreen

默认情况下,这将发送 SIGTERM,但您可以对其进行调整。请参阅man timeout

答案2

我会这样做:

chromium-browser www.youtube.com -start-fullscreen &; pid=$!; sleep 1m; kill -15 $pid

已测试,有效

如果你想 100% 确定它能关闭,你可能会更残忍,并且kill -9 $pid

相关内容