• 如果需要在后台执行且关闭shell不退出,在程序启动命令中加入 &
  • 如果开始没有加入 & ,发现命令执行时间很长,可以参考本文

将进程切换到后台且不退出

  1. 将进程切换到后台( Ctrl + Z
  2. 让进程在后台继续执行( bg x
  3. 使用 exit 命令退出当前shell,进程不退出

将进程暂停且切换到后台

使用 Ctrl + Z 将命令暂停切换到后台。 Ctrl + Z 是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态

shell> wget https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe
--2022-08-06 10:56:21--  https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe
Resolving download.filezilla-project.org (download.filezilla-project.org)... 49.12.121.47, 2a01:4f8:242:52d0::2
Connecting to download.filezilla-project.org (download.filezilla-project.org)|49.12.121.47|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11854128 (11M) [application/x-msdos-program]
Saving to: ‘FileZilla_3.60.2_win64_sponsored-setup.exe.2’
 1% [>                                                                                   ] 122,880     30.2KB/s  eta 6m 19s 
^Z (输入Ctrl + Z)
[1]+  Stopped                 wget https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe

查看后台的进程

shell> jobs -l
[1]+  Stopped                 wget https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe
  • 后台有1个已暂停的程序
  • [1]表示进程在后台的编号为1

将进程切换到前台且继续执行

shell> fg 1
wget https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe
 3% [====>                                                                                                                                                               ] 409,600      992B/s   in 6m 53s  
2022-08-06 11:03:16 (992 B/s) - Connection closed at byte 409600. Retrying.
--2022-08-06 11:03:17--  (try: 2)  https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe
Connecting to download.filezilla-project.org (download.filezilla-project.org)|49.12.121.47|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 11854128 (11M), 11444528 (11M) remaining [application/x-msdos-program]
Saving to: ‘FileZilla_3.60.2_win64_sponsored-setup.exe.2’
 7% [+++++=====>                                                                                                                                                         ] 860,160     28.1KB/s  eta 5m 16s
  • fg 1中的1为进程在后台的编号

让进程在后台继续执行

shell> bg 1
[1]+ wget https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe &
 1% [>                                                                                                                                                                   ] 122,880      534B/s  eta 6h 5m   [ 
 5% [=======>                                                                                                                                                            ] 630,784     19.6KB/s  eta 73m 5s 
  • bg 1中的1为进程在后台的编号

查看后台的进程:

[1]+  Running                 wget https://download.filezilla-project.org/client/FileZilla_3.60.2_win64_sponsored-setup.exe &
  • 执行 bg 1后,系统在命令后面加入&符号
  • 看到&符号后,此时可以通过exit命令退出当前shell。执行exit退出shell后,进程不退出。
  • 另一shell,使用ps -ef|grep wget可查看到在后台运行的进程。
Semeru 是一个小型 Java 启动器,用于执行以下任务: 提供一种对 Java 程序中的 SIGINT、SIGTERM 和可选的 SIGHUP 信号作出React的方法。 在切换到另一个用户之前,为进程设置特定的 Linux 功能。 该程序不打算用来做任何可以从 shell 脚本轻松完成的事情,或者做一些选择的 init 系统可以执行的事情。 例如,这包括但不限于: 设置您的类路径(使用 shell 脚本)。 分离进程并使其在后台运行(使用您的初始化系统)。 设置日志记录目标(在开始之前将 stdout/stderr 重定向到记录器进程)。 Java接口 就像普通的 java 启动器一样,Semeru 将尝试在主类中查找并执行具有以下签名的方法: public static void main(String[] args) 如果/当此方法返回时,程序将退出
Linux后台进程切换 当你用shell启动一个程序时,往往他是在前台工作的。 例如经常用PUTTY连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。因此有必要进行前后台进程的切换。 例如直接在终端里输入firefox,那么会打开firefox,但当你关闭此终端或者ctrl+c强制终止时,firefox也随机关闭了。你可以在执行时后面加一个&,这样就在后台工作了。 Shell支持作用控制,有以下命令: command & 让进程
(1) CTRL+Z挂起进程并放入后台,或者的带&运行的后台命令 (2) jobs 显示当前暂停的进程,得到任务号N (3) bg %N使第N个任务在后台运行(%前有空格) (4) fg %N使第N个任务在前台运行
开发人员在调试的时候,已经在debug版本下重现了这个bug,跟踪代码出错部分的流程如下: 发送WM_QUIT消息给一个工作线程让其退出; 用WaitForSingleObject等待那个线程的句柄有信号; 如果有信号,就直接CloseHandle掉这个线程句柄; 如果超时没有信号,就直接用_endthreadex()杀死线程。 开发人员跟踪了好多次发现消息发送过去后线程并没有退出,每次都要超时进入强杀流程,但强杀调用确没有杀死线程,从th
1. 把程序放到后台运行 在前台运行的程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。 但是如果把进程放到后台,可以把终端空出来,你可以执行其它的操作。另一个好处是,放到后台的程序不会被ctrl+C(误触)给终止。 1.1 一开始就把进程放到后台运行 直接在命令行末尾加上 &: 例如 python train.py & 可以让train.py脚本一开始就在后台运行。这样运行后终端不会被占用,你仍然可以可以干
 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,ps命令就是最基本进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到。ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。参数: -A :所有的进程均显示出来,与...
文章目录前言一、僵尸进程1.1 僵尸进程的危害1.2 僵尸进程解决方案1.2.1 kill杀死元凶父进程1.2.2 父进程用wait或waitpid去回收资源1.2.3 通过信号机制,在处理函数中调用wait,回收资源二、孤儿进程参考   在Unix/Linux系统中,正常情况下,子进程是通过父进程创建的,子进程可以再继续创建新的进程。在Linux中,除了进程0(即PID=0的进程,init进程)以外的所有进程都是由其他进程使用系统调用fork创建的,这里调用fork创建新进程进程即为父进程,而相对
1. 需求     在实际编写应用程序的时候,可能会出现如下场景,你正在开发阶段,但是你的上层,可能也要测试,此时,你的程序不定时的因为某种原因会蹦掉,但其实你不关心,因为在开发阶段,具体原因留待以后解决,此时,一个保证你程序能自动重启的机制就需要了。 2. 正文     2.1 保证进程退出的思路大致是这样的:     (1)用 ps 查看进程     (2)在进程退出的时候,重启进...