程序员

Linux基础(3)—— Linux进程的相关操作

2018-12-25  本文已影响20人  黄宝玲_1003

运行进程时,进程会占据前台终端,有时想要将进程放入后端工作,怎么做呢?下面介绍几种方法。

1 后台运行程序

1.1 &

用法:command &
用途:使程序在后台运行

用之前做过的Minio服务来举例子:

./minio server /m1 /m2 /m3 /m4 &

1.2 ctrl + z

可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

1.3 nohup

用法:nohup command & (一般和&一起用)
用途:不挂断地运行命令。

nohup ./minio server /m1 /m2 /m3 /m4 & 

一般用nohup会把输出重定向。

nohup ./minio server /m1 /m2 /m3 /m4 > out.file 2>&1 & 
// >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
// 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
// 试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

使用了nohup之后,很多人就这样不管了,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。

2 进程查看命令

2.1 jobs指令

查看当前有多少在后台运行的命令。

jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)

jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

2.2 ps指令

查看后台进程

// 查看运行进程
ps -ef|grep mino

2.3 netstat 端口查看指令

如果某个进程起不来,可能是某个端口被占用。

netstat -ntlp|grep 9000
/* netstat命令各个参数说明如下:
  -t : 指明显示TCP端口
  -u : 指明显示UDP端口
  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
  -n : 不进行DNS轮询,显示IP(可以加速操作)
*/

3 进程删除命令

3.1 kill 指令

删除进程。

上一篇 下一篇

猜你喜欢

热点阅读