把一个正在执行的程序放入后台

[root@localhost 01]# Ctrl+Z

此使程序被移动到后台,但不能继续输出(处于暂停态)

[root@localhost 01]# ./test1-1
1552227
1552227
1552227
1552227
^Z
[1]+ 已停止 ./test1-1
[root@localhost 01]#
[root@localhost 01]#
[root@localhost 01]# jobs
[1]+ 已停止 ./test1-1

让该后台程序继续在后台运行

[root@localhost 01]# bg %1
[1]+ ./test1-1 &
1552227
[root@localhost 01]# 1552227
1552227
1552227
^C

列出后台程序列表

[root@localhost 01]# jobs

显示已经进入后台的程序列表

[root@localhost 01]# jobs
[1] 已停止 ./test1-1
[2]- 已停止 ./test1-1
[3]+ 已停止 man jobs

其中+是倒数第一个后台进程,-是倒数第二个后台进程,前方是后台进程的序号

[root@localhost 01]# jobs
[1]- 已停止 ./test1-1
[2]+ 已停止 ./test1-2

将某个特定后台程序切换到前台

[root@localhost 01]# fg %n

其中n是jobs列表中的后台进程序号

[root@localhost 01]# fg %1
./test1-1
1552227
1552227

查看父进程标识

[root@localhost 01]# ps f
PID TTY STAT TIME COMMAND
49561 pts/1 Ss 0:00 -bash
49959 pts/1 T 0:00 \_ ./test1-1
49960 pts/1 T 0:00 \_ ./test1-2
49962 pts/1 R+ 0:00 \_ ps f
2496 tty1 Ss+ 0:00 -bash

使用ps f以树形显示所有进程可以查看到test1-1 test1-2的父进程都是-bash

在新终端查看进程标识

[root@localhost ~]# ps f
PID TTY STAT TIME COMMAND
50060 pts/3 Ss 0:00 -bash
50093 pts/3 R+ 0:00 \_ ps f
50010 pts/2 Ss+ 0:00 -bash
49561 pts/1 Ss+ 0:00 -bash
49959 pts/1 T 0:00 \_ ./test1-1
49960 pts/1 T 0:00 \_ ./test1-2
2496 tty1 Ss+ 0:00 -bash

在新终端打开后test1-1和test1-2的父进程是pts/1 的-bash也就是旧终端,新终端的-bash是pts/3,此使用jobs没有test1-1和test1-2了

按Ctrl+D时登出终端

[root@localhost 01]# 登出

显示有停止的任务,再使用ps -ef查看列表,后台任务依然存在

再按一次Ctrl+D,终端已经登出,切换到另一个终端查看

Last login: Sun Oct 15 18:26:48 2017 from 192.168.80.1
[root@localhost ~]# ps -ef | grep test
root 49959 1 0 18:27 ? 00:00:00 ./test1-1
该进程被init进程收养后继续运行,称孤儿进程

直接把程序放到后台执行 &

[root@localhost 01]# ./test1-1 &

此使程序会自动在后台继续运行,并进行输出

[root@localhost 01]# ./test1-1 &
[1] 49856
[root@localhost 01]# 1552227
1552227

保持后台程序在终端结束后依然存在

使用守护进程让进程不以终端为父进程

daemon(0,0);

ps -ef 中的状态含义

D    不可中断     Uninterruptible sleep (usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程 < 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程
+ 位于后台的进程组;
l 多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

Linux Guard Service - 前台进程和后台进程切换的更多相关文章

  1. Linux Guard Service - 进程分裂与脱离

    进程分裂更名 void set_ps_name(char *name) { prctl(PR_SET_NAME, name); } 修改进程长名称 备份进程环境变量空间 for (i = 1; i & ...

  2. Linux Guard Service - 守护进程再次分裂子进程

    当系统区内存不能再申请新进程的时候申请会失败 在512MB内存下最多分配的子进程数 3331 [root@localhost 05]# ./test5-1 50000 expect 50000 sub ...

  3. Linux Guard Service - 杀死守护进程

    杀死某个子进程 杀死守护进程的子进程后,改进程会变为僵尸进程 14087 ? Ss 0:00 ./test4-1 14088 ? S 0:00 \_ ./test4-1 14089 ? S 0:00 ...

  4. Linux Guard Service - 守护进程分裂

    分裂守护进程 由于fork()后第一行仍然在循环中,使用fork()返回值鉴别当前进程的性质 int i = 0; for (i = 0; i < 10; i++) { // sleep(1); ...

  5. Linux Guard Service - 守护进程的作用、用途、父进程标识的特点

    让test2直接成为守护进程 [root@localhost 02]# cat test2.c //test2 #include<stdio.h> #include<unistd.h ...

  6. 操作系统中前台进程与后台进程(适用于Linux)

    两种进程的主要区别: 1.前台进程用户可以操作,后台进程用户不能操作(除了把它关闭). 2.前台进程不全是由计算机自动控制,后台进程全都是由计算机自动控制. 3.后台进程一般用作系统服务,可以用cro ...

  7. 将Apache加入到linux系统service

    将Apache加入到linux系统service 将apache加入到linux系统服务,用service命令来控制apache的启动和停止. 本文由乌合之众瞎写http://www.cnblogs. ...

  8. Linux: service network/Network/NetworkManager

    Linux:service network/Network/NetworkManager start 这三种有什么不同? 1.network service的制御网络接口配置信息改动后,网络服务必须从 ...

  9. Linux图形界面和命令界面切换

    转至:https://blog.csdn.net/weixin_43683466/article/details/85727723 1.若虚拟机内热键被占用,可通过下图所示修改,移出快捷键ctrl+a ...

随机推荐

  1. CSS 父级方法清除浮动方法

    .baseMod:after { clear: both; content: ' '; display: block; visibility: none; height: 1% } 2. overfl ...

  2. leetcode495

    public class Solution { public int FindPoisonedDuration(int[] timeSeries, int duration) { ) { ; } ) ...

  3. Spring MVC 后端接口支持跨域CORS调用

    Spring MVC 从4.2版本开始增加了对CORS的支持,可以全局配置,也可以对类或方法配置:可以通过Java代码,也可以通过xml配置方式. 对于低版本的Spring MVC 可以通过Filte ...

  4. Redis实战——安装问题汇总

    借鉴:https://www.cnblogs.com/liu2-/p/6914159.html 通用方法:迅速查看缺少的包的路径,并安装 yum provides *** 如 yum provides ...

  5. pip / conda 导出和安装环境组件 requirements.txt

    pip 批量导出包含环境中所有组件的requirements.txt文件 pip freeze > requirements.txt pip 批量安装requirements.txt文件中包含的 ...

  6. zt对于C#中的FileUpload解决文件上传大小限制的问题设置

    对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...

  7. (转)libvirt 部分API 介绍

    感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如果转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  8. emulator: Trying to vcpu execute at eip:6d4053

  9. Quaternion.identity是什么意思?

    Quaternion.identity就是指Quaternion(0,0,0,0),

  10. p4051 [JSOI2007]字符加密

    传送门 分析 将字符串复制一遍然后直接求sa即可 代码 #include<iostream> #include<cstdio> #include<cstring> ...