CentOS 7 Linux 学习笔记 (8)

CentOS 7 下的进程(以及程序相关的)操作:

常见命令:

ps -ef —— 查看系统中的一些进程

ps -ef | grep firewalld —— 查看进程中跟firewalld相关的进程
  firewalld是CentOS 7 中新增加的。,用来替换防火墙的

  |  称为管道符,可以隔开不同的操作,而且 : 可以把 管道符 | 前面命令的输出作为管道符 | 后面命令的输入 

 

which firewalld —— 查看wirewalld到底涉及哪些可执行的程序

kill 7319 —— 停止一个进程,如果我们知道它的ID,可以用kill命令

  如果停止不了,可以进行强制删除/停止这个进程,输入指令:kill -9 7319

       如果进程很多,可以输入指令:ps -ef | more 进行分页显示,空格切换下一页,q则退出

man ps —— 查看更多关于 ps 的参数,q退出 (man用于查看命令)

man ls —— (同理)查看更多关于 ls 的参数

 

写一个进程的脚本(通过命令放在前台或者后台去运行) (脚本的后缀名一般为:.sh)

vi a.sh:

开始写脚本:(第一行:说明这是什么类型的脚本,在运行的时候会用到哪一个shell,这里是bash类型的脚本)

                       (第二行:sleep 是休眠的意思,这里是休眠1000秒)

       (第三行:echo 是打印的意思)

 然后,执行脚本:./          ( ./ 代表当前目录)

 操作不了了,是因为这样执行脚本a.sh的话会占用当前的终端,然后就会卡住,无法操作。可以使用ctrl + c 强制退出。

然后查看a.sh是否运行了,查看进程:

ps -ef | grep a.sh

发现没有运行。(出现的这个进程是运行命令ps -ef | grep a.sh的进程)

然后,把这个脚本放在后台来运行: ./a.sh &

 可以看到是有运行的。

(前台进程是指占用当前终端的进程)

输入指令:jobs ,来查看当前运行的有哪些进程,但是不包括系统进程(ps -ef 命令是包括系统进程的)

把后台进程切换成前台进程:

 输入指令:fg %1  (%后面的数字1对应上面进程的进程号)

可以看到,它会占用当前的终端(因为卡住了)

 

如何把当前占用终端的前台进程放到后台,

输入Ctrl+z,使其停止,然后输入:jobs 来查看,可以看到该进程已经北方入到后台了,而且被暂停了,可以重新让它运行。

 可以重新让它运行,输入指令如下:

ps -ef | grep a.sh 先查看该进程,

kill -cont 13332 继续这个进程,jobs进行查看:

想暂停这个进程:

输入指令:kill -stop 13332  ,暂停这个进程(暂停的进程并没有退出内存,还是在内存当中的)

想要中断这个进程:

输入指令:kill 13332(ID号) 或,输入指令:pkill  a.sh  (pkill加名称)

 

实操时:

./a.sh —— 运行该脚本(且会造成阻塞)

此时,Ctrl+c —— 会使该进程直接终端(终止),

  而Ctrl+z —— 会使该进程处于stopped状态。

 

在进程处于Running 状态时,输入:kill -stop 进程ID —— 使得进程处于stopped 状态

                                                      (有时候)

在进程处于stopped状态时,输入:kill -cont 进程ID —— 使得进程处于Running 状态

             但是输入:pkill a.sh(进程名) —— 并不会终止进程(Terminated)

而是,当进程处于Running 状态时,输入:pkill a.sh —— 会终止进程(Terminated)

 

posted @ 2022-07-12 18:34  小周学jishu  阅读(83)  评论(0编辑  收藏  举报