如何让sh脚本中的try.py与matchbox-keyboard同时运行?
解决方案:让两个程序同时启动运行
嘿,这个问题其实是shell脚本的执行逻辑导致的——默认情况下,脚本里的命令是按顺序前台执行的:只有前一个命令彻底结束退出,才会轮到下一个命令运行。所以你的matchbox-keyboard得等try.py关闭后才启动,完全是正常的shell行为~
要让两个程序同时跑起来,只需要把第一个命令放到后台执行就行,给它加个&符号就搞定了。修改后的脚本应该是这样:
#!/bin/bash sudo python3 /home/pi/Desktop/try.py & sudo matchbox-keyboard
简单解释下:&会让前面的python3命令在后台运行,shell不会等它结束,立刻就去执行下一行的matchbox-keyboard,这样两个程序就能同时启动运行了。
如果你的try.py运行时会输出大量日志,不想让这些内容干扰终端,可以把输出重定向到/dev/null,避免屏幕乱糟糟的:
#!/bin/bash sudo python3 /home/pi/Desktop/try.py > /dev/null 2>&1 & sudo matchbox-keyboard
这里> /dev/null是把标准输出扔到“黑洞”里,2>&1是把错误输出也重定向到和标准输出一样的位置,这样后台运行的程序就不会在终端输出任何内容啦。
内容的提问来源于stack exchange,提问作者eibersji
相关产品推荐
相关产品推荐

