《学习bash》笔记--进程处理
1.进程ID和作业编号
[1] 3318
2.作业控制
一旦作业在后台执行,你能够让它一直执行,或把它放到前台,或向其发送信号。
2.1.前台和后台
[1] 3481
yanwenjie@ywjpc:~/ctest$ ./b &
[2] 3482
yanwenjie@ywjpc:~/ctest$ ./c &
[3] 3483
yanwenjie@ywjpc:~/ctest$ jobs
[1] Running ./a &
[2]- Running ./b &
[3]+ Running ./c &
$ jobs -p
3481
3482
3483
2.2.挂起一个作业
^Z
[1]+ Stopped ./a
业名或者编号的fg。
yanwenjie@ywjpc:~/ctest$ jobs
[1] Stopped ./a
[2]- Stopped ./b
[3]+ Stopped ./c
yanwenjie@ywjpc:~/ctest$ fg %1
./a
假设键入ctrl-z后跟bg。就会把该作业放到后台执行。
yanwenjie@ywjpc:~/ctest$ jobs
[1] Stopped ./a
[2]- Stopped ./b
[3]+ Stopped ./c
yanwenjie@ywjpc:~/ctest$ bg %2
[2]- ./b &
yanwenjie@ywjpc:~/ctest$ jobs
[1]- Stopped ./a
[2] Running ./b &
[3]+ Stopped ./c
3.信号
3.1.控制键信号
3.2.kill
# ./a &
[1] 2680
# kill %1
[1]+ Terminated ./a
假设没有看到该消息,TERM信号中断作业失败。下一步再试试QUIT:
kill -QUIT %1
假设工作正常会看到:
[1]+ Quit (core dumped) ./a
假设QUIT也不正常执行,自后一种方式是使用KILL:
# kill -KILL %1
[1]+ Killed ./a
3.3.trap
while true; do
sleep 60
done
^Cyou hit ctrl-c
^Cyou hit ctrl-c
3.4.进程ID变量
while true; do
sleep 10
done
[1] 3258
root@ywjpc:/home/yanwenjie/bashtest# 3258
3.5.重置陷阱信号
它会将收到信号时的行为重置为默认欣慰,一般是进程的终止。
trap "echo 'ctrl c is received'" INT
i=5
while [ $i -gt 0 ]; do
sleep 5
i=$((i-1))
done
trap - INT
i=5
while [ $i -gt 0 ]; do
sleep 5
i=$((i-1))
done
^Cctrl c is received
^Cctrl c is received
^Cctrl c is received
^Cctrl c is received
^Cctrl c is received
^C
4.协同程序
alice &
假设当脚本完毕时,alice仍然执行,那么
5.子shell
5.1.子shell继承
- 当前文件夹
- 环境变量
- 标准输入,标准输出和标准错误,以及其他不论什么打开的文件描写叙述符。
- 被忽略的信号。
- shell变量
- 没有被忽略的信号处理
5.2.嵌套子shell
这通常不如一个命令块效率高。子shell和命令块在功能上的区别非常少。它们之间的主要区别
首先,嵌套子shell内的代码服从上述子shell继承规则,除此
《学习bash》笔记--进程处理的更多相关文章
- 操作系统学习笔记----进程/线程模型----Coursera课程笔记
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ...
- JUC学习笔记——进程与线程
JUC学习笔记--进程与线程 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的进程与线程部分 我们会分为以下几部分进行介绍: 进程与线程 并发与并行 同步与异步 线程详解 进程与线程 ...
- Python学习基础笔记(全)
换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...
- ORMLite学习入门笔记
ORMLite学习入门笔记 使用原始的SQLiteHelper来操作维护数据库有点过于繁琐,重复工作量较大.所以会想到使用一个比较方便的ORM来维护我们本地的数据库,各位业界前辈都给我推荐了ORMLi ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- 第十一章、认识与学习BASH
第十一章.认识与学习 BASH 最近升级日期:2009/08/25 1. 认识 BASH 这个 Shell 1.1 硬件.核心与 Shell 1.2 为何要学文字接口的 shell 1.3 系统的合法 ...
- DSP28377S - ADC学习编程笔记
DSP28377S - ADC学习编程笔记 彭会锋 2016-08-04 20:19:52 1 ADC类型导致的配置区别 F28377S的ADC类型是Type 4类型,我的理解是不同类型的ADC采 ...
- 学习ReactNative笔记整理一___JavaScript基础
学习ReactNative笔记整理一___JavaScript基础 ★★★笔记时间- 2017-1-9 ★★★ 前言: 现在跨平台是一个趋势,这样可以减少开发和维护的成本.第一次看是看的ReactNa ...
- 深度学习word2vec笔记之算法篇
深度学习word2vec笔记之算法篇 声明: 本文转自推酷中的一篇博文http://www.tuicool.com/articles/fmuyamf,若有错误望海涵 前言 在看word2vec的资料 ...
随机推荐
- loj 数列分块入门 5 7 8
5 题意 给出一个长为\(n\)的数列,以及\(n\)个操作,操作涉及区间开方,区间求和. 思路 用\(tag\)记录这一块是否已全为\(1\). 除分块外,还可用 树状数组+并查集(链表) 或者 线 ...
- 自定义topo遇到的坑
错误:TypeError: __init__() got an unexpected keyword argument 'delay' 解决办法:在创建topo的地方加一个link=TCLink即可, ...
- ACL权限引发的403 Forbidden
403 Forbidden查看nginx用户 getfacl 查看url实际对应的目录地址.检查权限是否授权有问题,特别是mask mask是最大权限控制查看权限是否有nginx用户以及mask权限, ...
- Hashmap与Hashtable的区别及Hashmap的原理
Hashtable和HashMap有几个主要的不同:线程安全以及速度.仅在你需要完全的线程安全的时候使用Hashtable,而如果你使用Java 5或以上的话,请使用ConcurrentHashMap ...
- Fiddler抓包4-工具介绍(request和response)【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6719717.html 前言 本篇简单的介绍下fiddler界面的几块区域,以及各自区域到 ...
- ajax和json数据
一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应, ...
- chrome报错a parser-blocking, cross-origin script, is invoked via document.write.
确切的说是警告,内容是: A Parser-blocking, cross-origin script, http://s4.cnzz.com/stat.php?id=xxx&show=pic ...
- Longest Common Substring($LCS$)
Longest Common Substring(\(LCS\)) 什么是子序列? 子序列就是某一个序列的不连续的一部分. 如图, \(abcde\)就是图中序列的一个子序列. 公共子序列 公共子序列 ...
- 分析dump
一.使用jmap工具生成dump文件 二.MAT工具的下载和安装 三.使用MAT工具进行内存泄露分析 -- Step 1 : ps –ef | grep <process> (whic ...
- Ubuntu 16.04网络管理工具NetworkManager无法使用nm-tool的问题
说明: 1.在Ubuntu中网络设置分两类,一个是GUI配置工具NetworkManager,另一个是命令行的配置,两者只能共存一个,也就是说其中一个设置之后另一个就会失效: 2.NetworkMan ...