我的简单命令行存在问题:
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