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

[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. 读《分布式一致性原理》zookeeper运维

    1.配置详解 1.1基本配置 基本参数包括clientPort,dataDir和tickTime 1.2高级配置 下面我们再来看看zookeeper中一些高级配置参数的配置实用 2.四字命令 我们曾经 ...

  2. HTTP接口开发专题四(接收http接口发送过来的请求)

    前面讲了调用http接口的操作,这篇讲下接收http接口的操作.(以Spring MVC为例) 1)如果发送过来的内容类型是application/x-www-form-urlencoded ,则按照 ...

  3. vue之slot,组件标签嵌套

    vue之slot,组件标签嵌套 插槽(Slot),在各种vue的ui插件中,经常见到的多个组件标签相互嵌套(如下)就是以此为基础的. <el-col > <el-checkbox & ...

  4. SQL 返回刚插入数据的ID

    处理方法在某个字段上加上identity id int identity(1,1), 创建标识的三种方法及比较: SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDE ...

  5. 加密算法blowfish 多语言

    php加密算法blowfish <?php /** * Created by PhpStorm. * User: Administrator * Date: 2016-02-14 * Time: ...

  6. 跟我学算法-pca(降维)

    pca是一种黑箱子式的降维方式,通过映射,希望投影后的数据尽可能的分散, 因此要保证映射后的方差尽可能大,下一个映射的方向与当前映射方向正交 pca的步骤: 第一步: 首先要对当前数据(去均值)求协方 ...

  7. Scanner和BufferReader之区别

    在Java SE6中我们可知道一个非常方便的输入数据的类Scanner,位于java.util包中,这个Scanner的具体用法为Scanner in = new Scanner(System.in) ...

  8. Kafka Zookeeper 基本命令示例

    Kafka 新建Topic bin/kafka-topics. --replication-factor --partitions --topic my-topic 查看已存在Topic列表 bin/ ...

  9. [SoapUI] JsonPath 语法 与 XPath 对比

    XPath JSONPath Description / $ the root object/element . @ the current object/element / . or [] chil ...

  10. excel判断新增使用字典作为页面级数据库,减少io

    前提:该机构录入的都是和该机构有关的数据,机构下的funmental(idcard唯一)和creditinfo(funmentalid唯一)不能重复所以推出以下结论:1.根据userid(机构)=&g ...