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
-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> && ......
命令队列,从左向右,依次执行以 && 分隔的命令。前一个命令执行成功,后一个命令才能执行