hello cc

linux下进程操作命令

Posted on 2015-08-10 08:49  星际海盗  阅读(647)  评论(0)    收藏  举报

用的最多的就是ps命令,

1.查进程
    ps命令查找与进程相关的PID号:
    ps a 显示现行终端机下的所有程序,包括其他用户的程序。
    ps -A 显示所有程序。
    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    ps -e 此参数的效果和指定"A"参数相同。
    ps e 列出程序时,显示每个程序所使用的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
    ps -H 显示树状结构,表示程序间的相互关系。
    ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    ps s 采用程序信号的格式显示程序状况。
    ps S 列出程序时,包括已中断的子程序资料。
    ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
    ps u 以用户为主的格式来显示程序状况。
    ps x 显示所有程序,不以终端机来区分。
  
    最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
    ps aux | grep program_filter_word,ps -ef |grep tomcat
    ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。
  
2.杀进程

 kill的原理是给进程发送一个信号过去,在linux中,对进程的控制交互是通过信号来实现的

信号量如下:

SIGINT: 当用户按某些终端键时, 引发终端产生的信号. 如Ctrl+C键, 这将产生中断信号(SIGINT). 它将停止一个已失去控制的程序.
SIGSEGV: 由硬件异常(除数为0, 无效的内存引用等等)产生的信号. 这些条件通常由硬件检测到, 并将其通知内核. 然后内核为该条件发生时正在运行的进程产生该信号.
SIGURG: 在网络连接上传来带外数据时产生.
SIGPIPE: 在管道的读进程已终止后, 一个进程写此管道时产生. 当类型为SOCK_STREAM的socket已不再连接时, 进程写到该socket也产生此信号.
SIGALRM: 进程所设置的闹钟时钟超时的时候产生.
SIGABRT: 进程调用abort函数时产生此信号, 进程异常终止.
SIGCHLD: 在一个进程终止或停止时, 它将把该信号发送给其父进程. 按系统默认, 将忽略此信号. 如果父进程希望被告知其子进程的这种状态改变, 则应该捕捉此信号. 通常是用wait系列函数捕捉, 如果不wait的话, 子进程将成为一个僵尸进程.
SIGIO: 此信号指示一个异步I/O事件.
SIGSYS: 该信号指示一个无效的系统调用.
SIGTSTP: 交互式停止信号. Ctrl+Z, 按下时, 终端将产生此信号, 进程被挂起


   使用kill命令结束进程:kill xxx
   常用:kill -9 324
   Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

 高级杀法:

杀掉所有的xxxx进程:  ps -ef|grep xxxx|grep -v grep|cut -c 9-15|xargs kill -9     

发送一个ctl+c 给进程:kill -s SIGINT process_name

 

 

文章摘录,

http://blog.csdn.net/wojiaopanpan/article/details/7286430

http://blog.sina.com.cn/s/blog_4c4fcd6601016jmf.html

 

hello man