拒绝/后台传递给bash的命令

时间:2015-01-11 18:33:31

标签: bash background

我正在尝试为运行Arch / BSPWM的笔记本电脑制作一个简单的锁屏。我发现了一个名为cmatrix的程序,它有一个屏幕保护程序标志,当按下某个键时它会退出。我正在尝试将bspc命令与cmatrix和vlock链接在一起,以创建一条可以运行以启动cmatrix全屏的行,在按下键时运行vlock,然后在vlock退出后退出。

我唯一的问题是,为了使锁屏有效,我需要退出sxhkd以防止人们简单地关闭包含cmatrix / vlock的窗口。我已经将pkill sxhkd添加到命令链中并且有效。破碎的部分再次启动sxhkd。简单地将sxhkd添加到最后并不起作用,因为终端窗口不会关闭直到sxhkd完成,这永远不会。此外,如果终端窗口关闭,sxhkd会因为它在其中运行而停止。

我尝试使用" sxhkd&",但由于某种原因,这导致整个事情无法运行。

这是我到目前为止几乎完成的命令:

urxvtc -e bash -c "sleep 0.1; pkill sxhkd; sleep 0.1; bspc window -t fullscreen=on; sleep 0.1; cmatrix -u 9 -s; sleep 0.1; vlock; sleep 0.1; sxhkd"

睡眠命令是这样的,程序不会以错误的顺序出现(有时在cmatrix运行之前会出现vlock密码提示)

它目前所做的是启动一个新的urxvt窗口(如果我想要cmatrix的终端字体,这很重要)并且它会杀死sxhkd以防止任何人关闭窗口。它使用bspc全屏显示并运行cmatrix。按下某个键时,cmatrix退出并出现vlock密码提示。正确输入密码后,它会尝试重新启动sxhkd,但它们会保持耦合。

非常感谢任何帮助!

0 个答案:

没有答案