Ubuntu下的多任务执行


前言

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
2
3
command1
command2
command3

亦或是;

1
command1;command2;

3.并行任务执行

3.1 隐式并行

隐式并行的方式就是利用&并行执行多任务,即:

1
2
3
command1 &
command2 &
command3 &

这样的话,多任务会并行执行,并且共享一个终端。

3.2 显式并行

选看

显式并行最好的方式就是开多个终端执行了,皮一下:laughing:,其实还有一种可以在同一窗口执行多终端的方式,即:

1
sudo apt install screen

我们可以依次创建新的子窗口:

1
2
screen -S 窗口名
command

screen的用法为:

1
2
3
4
screen -ls #显示所有子窗口
screen -r screenid #切换至指定窗口
ctrl+a+n #切换至下一窗口
ctel+a+p #切换至上一窗口

不过,上面都是题外话啦~,那么,我现在想并行开多个终端执行并行任务,可行吗?事实是可行的。

正文:

我们可以利用gnome-terminal命令开启多个终端:

1
2
gnome-terminal -x command #开启一个窗口执行一个命令
gnome-terminal -e 'command' #开启一个窗口

利用上述指令即可完成多终端任务:

1
2
3
4
gnome-terminal -e 'command1'
gnome-terminal -e 'command2'
gnome-terminal -e 'command3'
gnome-terminal -e 'command4'

上述命令有个问题,就是命令执行完毕会自动关闭窗口,为了避免,可以加上exec bash

1
gnome-terminal -e 'bash -c "command;exec bash"'

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!