linux删除位于后台的进程组,shell第4章进程和服务

Linux中的进程:

进程:已经启动的可执行程序的运行实力

1、PID: 进程的ID(每一个新进程都有一个唯一的PID)

2、PPID:父进程ID(有可能多个子进程公用一个该父进程)

3、任何一个进程都可以创建一个子进程

4、在redhat 7以上,所有进程的父进程:systemd

ps命令

参数:

-aux列出所有进程 , ps -aux [ps aux:显示用户u代表user]

-ax 列出所有进程, ps -ax[ps ax]

-ef 列出所有进程, ps -ef

-l 列出和当前用户有关的进程 ps -l

-u 接用户,查看某一用户的进程状态ps -u hudechao

top 可以查看实时的进程状态

top -p {PID} 可查看具体的PID进程的实时状态

使用ps -l查看到:(或ps -aux)

4 S 0 3606 3601 0 80 0 - 29010 wait pts/0 00:00:00 bash

0 R 0 3868 3606 0 80 0 - 37233 - pts/0 00:00:00 ps

进程的各状态:

运行中:

R:该进程正在运行或等待运行

睡眠:

S:正在休眠但是可以被唤醒

D:正在休眠,而且不可以被唤醒,该进程被中断,可能会导致设备的异常状态

K:正在休眠,而且不可以被唤醒,该进程可以被中断

已停止:

T:进程被停止,但是可以通过其他进程来进行恢复

T:正在被调试的进程

僵停:

Z:子进程在退出时向父进程发出信号,除PID外,所有资源全部释放

X:父进程获取了子进程的结构,子进程可以完全释放,该状态进程中是看不到的

进程优先级:

n低优先级

s包含子进程

+位于后台的进程组

ps -aux参数解释:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 2 0.0 0.0 0 0 ? S 13:07 0:00 [kthreadd]

1、%CPU:占用的CPU使用率

2、%MEM:占用的记忆体使用率

3、VSZ:占用的虚拟记忆体大小

4、RSS:占用的记忆体大小

5、TTY:终端的次要装置号码(minor device number of tty)

6、STAT:该进程的状态

7、START:进程开始时间

8、TIME:执行的时间

9、COMMAND:所执行的指令

Linux中的会话和作业:

进程:Linux自身运行的独立的程序

交互进程:由一个shell启动的进程,可以在前台运行,也可以在后台运行

批处理进程:是一个进程序列,和终端没有联系

监控进程(守护进程):Linux系统启动时,启动的进程,并且在后台运行

作业:一个正在执行的进程,而且作业可以包含一个或多个进程。

作业控制:控制正在运行的进程的行为。如:挂起一个进程,等一会在执行。这样用户可以在多个作业之间切换【换句话说:可以在多个正在执行的进程之间切换】

&:and符号可以跟在任何命令的后面,作用:可以让命令在后台执行

jobs:可以查看正在后台运行的作业状态:

jobs -l:除了列出作业,同时列出PID

jobs -r:列出仅仅在后台运行的作业

jobs -s:列出仅仅在后台暂停的作业

sleep 10000延迟多少秒

ctrl + c:中断

ctrl + z:挂起

fg + %作业编号:将后台的命令调到前台来继续执行,不能再放回后台了 【fg 1】

bg +%作业编号:将后台暂停的命令继续执行【bg 2】

ps -j:显示当前作业进程信息

PGID:线程组ID号

SID: 会话ID号

中断进程:

信号:传递给linux进程的操作

kill -l显示可以传递给linux进程的所有的信号

常用:

kill -9 PID强制 杀死一个进程

kill -15 PID正常的方式终止一个进程

kill -2同ctrl+c的操作是一样的

Linux中的控制服务和守护进程:

systemd:是所有进程父进程(Linux内核3.0以上版本)

systemctl:用户管理各种类型的systemd对象,这些对象称为:单元

常用的单元:.service(服务单元).socket(套接字).path(路径单元)

ssh:是一个协议 sshd:是一个进程

systemctl status sshd.service查看后显示中有几个关键字:

[root@localhost ~]# systemctl status sshd.service

sshd.service - OpenSSH server daemon

Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)

Active: active (running) since六 2018-06-16 13:07:30 CST; 1h 9min ago

loaded:单元配置文件已处理

enabled:开机自启动、或【disabled:开机不自启】、或【static:无法启动,但可以通过某一个已经启动的单元来启动】

active (running):正在运行、或【active (exited):配置成功】、或【active (waiting)运行中,但正在等待事件】、或【inactive:不在运行】

systemctl status sshd.service

start:在系统中启动一项服务

stop:等待程序需要处理完毕后再stop

restart:直接关闭程序,在开启【即重启】

reload:重新加载配置文件,进程暂停,然后把配置文件加载进去后,继续执行后续操作;进程的PID不会发生改变

enable:设置开机自启

disable:关闭开机自启

status:查看某一单元的状态

备注:红帽5,6版本中:

Service sshd status

Chkconfig ssh on/off开机自动启动/关闭自启

Linux中的日志:

大多数日志由四个部分组成

1、记录在日志的时间

2、发送该日志的主机

3、发送该日志消息的程序或进程

4、发送的实际消息

Jun 16 14:50:01 localhost systemd: Started Session 14 of user root.

Jun 16 14:50:01 localhost systemd: Starting Session 14 of user root.

日志监控:

tail -f /var/log/

显示最后10行,如果有新的内容加入,那么会继续输出

tail -200f /var/log/

显示最后200行,如果有新的内容加入,那么会继续输出

Linux中的计划作业:

周期性计划作业——cron

cron 是一个进程。可以让linux周期性的执行某一命令

crontab 是一个命令,可以设置Linux周期性的执行某一命令

-u 设置某个用户的周期性工作——root权限;

-e 编辑crontab的工作内容

-l 查看crontab的工作内容

-r 移除所有的crontab的工作内容,若紧要移除一项,请用-e去编辑

例如:crontab -eu hudechao【参数e要加载前面】

crontab的格式:

一行代表一个任务

minute hour day month week command

minute: 表示分钟,可以是从0-59之间的任何整数

hour: 表示小时,可以是从0-23之间的任何整数

day: 表示日期,可以是从1-31之间的任何整数

month: 表示月份,可以是从1-12之间的任何整数

week: 表示星期几,可以是从0-7之间的任何整数,这里的0或7代表星期日

command: 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

特殊字符含义:

*(星号)代表任何任何时刻都接受的意思,*代表的是任何时候

,(逗号)代表分隔字段意思,

例如:15,30,45 * * * * command代表的是每月每日每小时的15分,30分,45分的时候执行命令

-(减号)代表一段时间范围内,

例如:10 7-10 * * * command代表的是每月每日的7点到10点的10分整时执行命令

/n n代表数字,也就是每隔n单位间隔

例如:*/5 * * * * command代表每月每日每时每隔5分钟执行一次【间隔的时候前面在斜杠前面要加上*】

crontab的配置举例:

例如:每天晚上22点钟执行go to sleep

crontab -eu hudechao

* 22 * * * go to sleep

可查看日志信息有无执行:/var/log/cron

crontab的配置文件:

/etc/crontab配置文件:

当使用者使用crontab这个命令来创建工作任务之后,该项工作就会被记录到/var/spool/cron里面,而且是以用户名来命名文件。

如:hudechao用户使用crontab后,工作文件会被记录到/var/spool/cron/hudechao中,另外,cron运行的每一项工作都会被记录到日志/var/log/cron文件中。

crond服务每分钟检测一次,所以cron会每分钟去读取一次/etc/crontab与/var/spool/cron里面的数据内容,因此,只要编辑完/etc/crontab文件,cron的配置就会自动来执行。

如果修改完crontab或者添加crontab没有马上执行,可以使用systemctl restart crond.service重启。

*/1 * * * * date >>/home/software/abc

Linux中的输入输出重定向:

>file标准输出重定向到文件——覆盖

>>file标准输出重定向到文件——追加

2> file标准错误重定向到文件——覆盖

2>>file标准错误重定向到文件——追加

2>/dev/null标准错误重定向到回收站

&>file标准输出和标准错误重定向到文件——覆盖

>>file 2>&1标准输出和标准错误重定向到文件——追加

管道符:

字符|就是管道符

1、承上启下:把上一个指令的输出作为下一个指令的输入来执行

2、搭配grep 字符实现过滤功能。

如:

ll /etc/ | more

ps -aux | cron

ps -aux | cron >>abc

查找和替换:

grep只能用于查找文件中的内容

sed可以查找,然后替换或者插入想要的内容

a新增,a的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行)

d删除,因为是删除,所以d后面通常不接任何东西

i插入,i的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行)

p列印,即将某个选择的资料印出。通常p连同参数sed

s取代,可以直接进行取代的工作。

如:sed '2,5d' 123【删除文件123的第2-5行】

sed '2a 3333' 123【在文件123的地二行的下一行插入3333】

sed '$i 456' 123【在文件123的行尾的上一行插入456,$匹配到文件的行尾(正则)】

sed 's/cat/dog/' 123【左边的cat引用dog,即把cat替换成dog】

【注:上面这些操作都不会对源文件进行修改】

【注:如果要对源文件进行修改,要使用-i参数 【慎用】】

sed -i 's/cat/dog/' 123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值