Linux前后台程序的切换与控制

本文主要介绍在Linux下运行程序,及在前台和后台之间切换与控制的方法。

前台运行程序

通常的运行方法是:./a.out,表示运行当前目录下的可执行程序,并运行在前台。

运行在前台指的是当前终端窗口会暂停接受其他指令,而处于a.out的运行状态。当关闭当前终端窗口时,程序也会被关闭。

注意,不管运行在前台还是后台的程序,如果有输出到终端的程序指令,如cout, cerr等,都会在运行的终端上输出。

后台运行程序

程序运行在后台时,当前终端可以接受其他指令。

运行后台程序的方法有两种:

  • 在运行程序指令的最后加上符号:&,如./a.out&。注意,此程序仍依赖于当前终端,如果终端关闭,程序也会退出。
  • 使用nohup命令:nohup ./a.out&。该指令不依赖于终端,即使终端关闭,程序仍在后台运行。如果标准输出是终端,会写入nohup.out文件,如果标准错误是终端,会重定向到标准输出。
查看后台程序

两种方式:

  • jobs -l-l参数显示PID,前面的序号标识进程序号,+号表示当前任务,-号表示下一个任务。注意,该命令只能查看当前终端的后台任务,在其他终端启动的后台任务不可见。
  • ps aux,查看所有运行的程序。
进程的前后台切换

前台到后台运行

如果程序已经在前台运行,不想关闭程序并重新启动,可以执行以下步骤:

  1. ctrl + z
  2. bg %进程序号

第一步是将一个正在前台执行的程序放到后台,并处于暂停状态。第二步是继续运行一个后台暂停的程序,如果只有一个程序,可省略参数。

后台程序到前台

查看到后台程序的进程序号后,使用fg %进程序号即可。如果只有一个程序,可省略参数。

关闭正在运行的程序

对于前台程序,可直接在终端上按下ctrl + c关闭当前程序。

对于后台程序,有以下方法:

  • 先通过ps查看进程号,再kill -9 pid-9参数可省略,默认信号即可(前提是进程未捕获该信号,下同)。
  • killall a.out
  • 先通过jobs查看进程序号,再kill %进程序号
  • 根据程序对信号的处理情况,发送相应信号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值