【发布时间】:2014-10-21 06:41:46
【问题描述】:
所以我正在创建一个快速脚本,该脚本基本上启动 xboxdrv,然后是来自 Steam 的游戏以启用控制器支持。是的,虽然大多数支持控制器的游戏会自动与 Xbox 360 控制器配合使用,但有些游戏需要您在 xpad 驱动程序下运行控制器,否则由于某种原因它无法识别控制器。有问题的游戏是 Linux (XUbuntu) 上的 Bit.Trip Runner 2。
我遇到的问题是试图让脚本等待游戏退出(因为它是由 Steam 自己的命令启动的),然后终止 xboxdrv 以释放内存,但发生的事情是当游戏退出,我必须进入终端并按 Ctrl+C 才能移动它。
如果可能,请通俗地解释一下,因为这是我第一个完整的 linux 批处理脚本。以下是有问题的脚本:
sudo --validate
sudo xboxdrv --silent --detach-kernel-driver --mimic-xpad --dbus session & sleep 2
steam steam://rungameid/$APPID #<-- I want the game to exit to then kill xboxdrv
wait -n $! #<-- If I don't put wait, it will immediately kill xboxdrv after the game launches
sudo killall xboxdrv
exit 0
【问题讨论】:
-
欢迎来到 StackOverflow。如果您可以将(否则完整的)shell 脚本缩减为仅几行没有按照您的意愿执行的操作,这可能是最好的。这样一来,您就会吸引更多有兴趣帮助您的人。
-
是的,很抱歉。当我发布这个问题时,我已经半睡半醒了。只是想知道,如果我使用 pgrep 搜索进程的 pod,然后告诉 wait 等待该 ID,它会起作用吗?