前言
Ubuntu上我们有时候需要同时开启多个任务,可能是串行执行,可能是并行执行,也可能是多终端执行等等,下面我将介绍Ubuntu中开启多任务的方式。
1. 任务执行的监控
我们之前在Ubuntu关闭指定程序进程中介绍过如何查看指定程序的进程。当然啦,除此之外,我们的终端或者UI界面也能够反应程序的执行与否,即通过前端显示来判断程序运行情况。
另外,如果我们将程序设为后台执行,可利用nohup
命令,如:
1 | nohup python test.py > my_nohup.log 2>&1 & |
其中my_nohup.log
是日志路径。
2. 串行任务执行
串行任务的执行方式我们见到过很多,如:
1 | sudo apt install cmake build-essential libopencv-dev |
或者直接用换行方式:
1 | command1 |
亦或是;
1 | command1;command2; |
3.并行任务执行
3.1 隐式并行
隐式并行的方式就是利用&
并行执行多任务,即:
1 | command1 & |
这样的话,多任务会并行执行,并且共享一个终端。
3.2 显式并行
选看:
显式并行最好的方式就是开多个终端执行了,皮一下:laughing:,其实还有一种可以在同一窗口执行多终端的方式,即:
1 | sudo apt install screen |
我们可以依次创建新的子窗口:
1 | screen -S 窗口名 |
screen的用法为:
1 | screen -ls #显示所有子窗口 |
不过,上面都是题外话啦~,那么,我现在想并行开多个终端执行并行任务,可行吗?事实是可行的。
正文:
我们可以利用gnome-terminal
命令开启多个终端:
1 | gnome-terminal -x command #开启一个窗口执行一个命令 |
利用上述指令即可完成多终端任务:
1 | gnome-terminal -e 'command1' |
上述命令有个问题,就是命令执行完毕会自动关闭窗口,为了避免,可以加上exec bash
:
1 | gnome-terminal -e 'bash -c "command;exec bash"' |