Linux下面的进程涉及的命令有: at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup。
(1)任务前后台运行切换
指定后台运行:command &
比如: sleep 1s &将其调回前台 fg即可
前台到后台
vi .bashrc
然后在vi里用ctrl + z退出来
则会在终端显示出来
[1]+ Stopped vim .bashrc
这时候用jobs察看可以看到挂起的工作
bg 将后台中的程序由stopped变成running
fg 则是将后台中的命令移到前台
比如
1就是jobs显示的编号
bg %1
fg %1
jobs:显示后台任务的执行情况。
先把两个进程放在系统后台运行,然后使用jobs命令查看后台任务的执行情况:
#du -a /etc > user.da
[1] 233
# find / -name core -type f -ls > core.da
[2] 234
#jobs –l
[1] + 237 Running du -a /etc > user.da
[2] - 238 Running find / -name core -type f -ls > core.da
说明:上面的当前任务是“du -a /etc > user.da
(2)杀死进程
杀进程,但是默认的只是将程序停止而已,不一定是清除干净,所以需要彻底删除的话要发送一个信号,使用-9而 -15称为terminal是以一般的正常程序砍掉一个jobs,-9是强行终止
kill -9 %1
PID: process ID进程号
PPID-父进程,child process 子进程,子进程依赖于父进程,子进程死掉对父进程没影响,父进程死掉了后,所有子进程都会挂掉
ps命令
输入下面的ps命令,显示所有运行中的进程:
其中,
-A:显示所有进程
a:显示终端中包括其它用户的所有进程
x:显示无控制终端的进程
任务:查看系统中的每个进程。
任务:查看非root运行的进程
任务:查看用户vivek运行的进程
一般用ps -aux,其中aux是选项默认只输出当前用户的进程,包括信息也比较少:pid,tty,time,cmd
ps -e的话则输出全部用户的上面的内容
ps -ef 则输出: uid(user id),pid ppid,c,stime tty,time,cmd
ps -eF 只是内容不一样
ps -ely 同上
列出进程树: ps -ejH,或ps -axjf
列出某个用户的进程: ps -u userid
pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。
任务:获得线程信息
输入下列命令:
任务:查找进程
使用pgrep命令。pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID:
下面命令将显示进程名为sshd、所有者为root的进程。
(3)用户退出系统后,继续运行用户进程
nohup:用户退出系统之后继续工作
作用:nohup命令确保执行程序能在用户退出系统之后继续工作。
格式:nohup命令
说明:一般退出Linux系统时,会把所有的程序全部结束,包括那些后台程序。但有时候,例如,用户正在下载一 个很大的文件,但是你因下班或有事需要先退出系统,希望退出系统时程序还能继续执行。这时,我们就可以使用nohup命令使进程在用户退出后仍继续执行。 同时这些进程都在后台执行(命令放到后台运行,nohup必须与&操作同时使用),结果则会写到用户自己的目录下的nohup.out文件里。
应用实例如下。
程序在后台自动执行:
nohup wget -c -t0 http://www.bsdr.com/ghs1.rar &