伙计们,你们可能认为这是一个编码问题,但很有可能我不需要完全修改我的代码来解决这个问题。
所以我用 python 编写了一个无头(没有 GUI)音乐播放器,我现在像这样执行它:
python3 main.py
我可以从程序内部暂停/取消暂停正在运行的曲目。但是终端被占用了,我必须让这个额外的终端在我做任何事情时保持打开状态,这有点困扰我。
我现在如何与我的程序交互: 终端已被占用,所以我应该终止我的程序来释放它
:~$python3 main.py
playing track0.mp3: pause
paused track0.mp3: quit
:~$ls #I terminated the program so I could do this in currently running terminal
我想要如何与我的程序交互:终端没有被占用,所以我可以在其中运行其他东西。
:~$python3 main.py -init #It should not open the program in terminal
:~$ls #so I can do this while the music is playing
:~$python3 main.py pause #and like this I pause the program
:~$nano ~/.bashrc #and again I can use my terminal
:~$python3 main.py quit #and like this I terminate my program
我知道这是有可能的,但我不知道该怎么做。
编辑:有人说你应该发布你的代码,这样我们就可以帮助你:https://github.com/yolowex/odd-musicplayer
答案1
您应该意识到 Linux 终端 (bash) 具有多任务处理能力,因此终端永远不会真正“被占用”。默认情况下,您可以使用Ctrl+ Z(发送stty susp
)暂停正在运行的程序。
但在后台运行脚本会更简单。
python3 main.py &
然后,您可以使用fg
命令将其置于前景焦点。这是基本的作业控制。
如果您还想运行该脚本,以使其不附加到当前终端(并且在关闭时不会退出),请使用以下命令nohup
:
nohup python3 main.py &