首页 > 代码库 > linnux 3

linnux 3

 

kill [信号代码] 进程ID

 

以优雅的方式结束进程
# kill -l PID
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。 

# kill -HUP PID
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。

 

TERM信号
给父进程发送一个TERM信号,试图杀死它和它的子进程。
# kill -TERM PPID

 

对于僵尸进程,可以用kill -9 来强制终止退出;
比如一个程序已经彻底死掉,如果kill 不加信号强度是没有办法退出,最好的办法就是加信号强度 -9 

 

 

 pkill

pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。


pkill -kill -t     踢人。。。

 

xkill 是在桌面用的杀死图形界面的程序 ?

 

 

 pgrep     有点像是 ps+grep的缩写    pgrep相当于 ps –eo pid,cmd | awk ‘{print $1,$2}’ | grep KeyWord

pgrep查找的是程序名,不包括其参数

如下,参数里包括要查找的参数,而程序名中不包括,所有没查找到。

 

 

 

ps     ps的参数实在太多,man ps一下,初学的时候也看不明白。没时间仔细去看。

 

每天用的ps -ef 中的ef 分别是什么意思?

 

e everything

f full msg

 

 

# ps zxvqwe
ERROR: Unsupported option (BSD syntax)
********* simple selection ********* ********* selection by list *********
-A all processes -C by command name
-N negate selection -G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders -g by session OR by effective group name
-e all processes -p by process ID
T all processes on this terminal -s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
r only running processes U processes for specified users
x processes w/o controlling ttys t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full --Group --User --pid --cols --ppid
-j,j job control s signal --group --user --sid --rows --info
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long u user-oriented --sort --tty --forest --version
-F extra full X registers --heading --no-heading --context
********* misc options *********
-V,V show version L list format codes f ASCII art forest
-m,m,-L,-T,H threads S children in sum -y change -l format
-M,Z security data c true command name -c scheduling class
-w,w wide output n numeric WCHAN,UID -H process hierarchy

 

Usage: pgrep [-cflvx] [-d DELIM] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]    v reverse的意思, x 正则匹配   c count  l list pid  u user  d  delimiter for delimit
[-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]

 

# pgrep -l java    --- 加l参数看起来比较友好
31409 java
31447 java
# pgrep java
31409
31447

# pgrep -d ZZZ java    以ZZZ分隔
23095ZZZ23947

 

http://www.cnblogs.com/lwgdream/p/3407821.html

 

-l 同时显示进程名和PID

-o 当匹配多个进程时,显示进程号最小的那个

-n 当匹配多个进程时,显示进程号最大的那个

注:进程号越大,并不一定意味着进程的启动时间越晚

 

 

 

 

NAME
regcomp, regexec, regerror, regfree - POSIX regex functions    c函数都会有帮助文档的。。

SYNOPSIS
  #include <sys/types.h>
  #include <regex.h>

int regcomp(regex_t *preg, const char *regex, int cflags);

int regexec(const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags);

size_t regerror(int errcode, const regex_t *preg, char *errbuf,
size_t errbuf_size);

void regfree(regex_t *preg);

 

 

STRING(3) Linux Programmer‘s Manual STRING(3)

 

NAME
strcasecmp, strcat, strchr, strcmp, strcoll, strcpy, strcspn, strdup, strfry, strlen, strncat, strncmp, strncpy, strncasecmp, strpbrk, strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex - string operations

SYNOPSIS
#include <strings.h>

int strcasecmp(const char *s1, const char *s2);

int strncasecmp(const char *s1, const char *s2, size_t n);

char *index(const char *s, int c);

char *rindex(const char *s, int c);

#include <string.h>

char *strcat(char *dest, const char *src);

char *strchr(const char *s, int c)

 

 

。。。。

 

 一个是 Linux User‘s Manual     一个是 Linux Programmer‘s Manual

 

 

 

 

pstree    这是一个神奇的命令,不过,我现在还不能完全看懂。
  
树状显示进程信息,相当于 ps -H
    -a 显示完整命令及参数
    -c 重复进程分别显示
    -c 显示进程ID PID
    -n 按 PID 排列进程

 

 

nohup <命令>
将任务提交到后台,输出附加到 ~/nohup.out 文件。即便用户退出登录,提交的命令仍继续执行。

<命令> &
背景执行此命令,如果用户退出登录,则命令停止执行

<命令1> ; <命令2> ; ......
命令队列,从左向右,依次执行以 ; 分隔的命令

<命令1> && <命令2> && ......
命令队列,从左向右,依次执行以 && 分隔的命令。前一个命令执行成功,后一个命令才能执行