20181203使用信号控制进程

使用信号控制进程

kill(只能跟PID或JOB ID),killall(name),pgrep,pkill,top

给进程发送信号
[[email protected] ~]# kill -l //列出所有支持的信号
编号 信号名
1) SIGHUP 重新加载配置 PID 不变
2) SIGINT 键盘中断^C
3) SIGQUIT 键盘退出
9) SIGKILL 强制终止
15) SIGTERM 终止(正常结束),缺省信号,允许去释放资源
18) SIGCONT 继续
19) SIGSTOP 停止
20)SIGTSTP 暂停^Z
作业 1: 给 vsftpd 进程发送信号 1,15
vsftpd 信号测试
[[email protected] ~]# yum -y install vsftpd 安装FTP服务
[[email protected] ~]# /etc/init.d/vsftpd restart 为 vsftpd 启动 vsftpd
[[email protected] ~]# /etc/init.d/vsftpd stop 关闭 vsftpd
[[email protected] ~]# ps aux |grep vsftpd
root 9160 0.0 0.0 52580 904 ? Ss 21:54 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

[[email protected] ~]# kill -1 9160 //发送重启信号,例如 vsftpd 的配置文件发生改变,希望重新加载
root 9160 0.0 0.0 52580 904 ? Ss 21:54 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

[[email protected] ~]# kill 9160 //发送停止信号,vsftpd 服务有停止的脚本 systemctl stop vsftpd(默认就是15)
[[email protected] ~]# ps aux |grep vsftpd
作业 2:crond 信号测试
//1 hup
[[email protected] ~]$ ps aux |grep crond
root 478 0.0 0.1 124144 1572 ? Ss 09:35 0:00 /usr/sbin/crond -n

[[email protected] ~]$ sudo kill -1 478
[[email protected] ~]$ ps aux |grep crond PID不变
root 478 0.0 0.1 124144 1572 ? Ss 09:35 0:00 /usr/sbin/crond -n

//15 term
[[email protected] ~]$ sudo kill 478
[[email protected] ~]$ ps aux |grep crond

[[email protected] ~]$ sudo systemctl start crond
[[email protected]s23gbf6Z ~]$ ps aux |grep crond 进程重启后PID改变
root 22319 0.0 0.1 124140 1548 ? Ss 14:54 0:00 /usr/sbin/crond -n

作业 3: 信号测试18,19
[[email protected] ~]# ps aux |grep vsftpd
root 2737 0.0 0.0 52580 824 ? Ss 10:38 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
//19 stop
[[email protected] ~]# kill -19 2737
[[email protected] ~]# ps aux |grep vsftpd
root 2737 0.0 0.0 52580 824 ? Ts 10:38 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 2806 0.0 0.0 103256 844 pts/0 S+ 10:59 0:00 grep vsftpd
//18 cont
[[email protected] ~]# kill -18 2737
[[email protected] ~]# ps aux |grep vsftpd
root 2737 0.0 0.0 52580 824 ? Ss 10:38 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 2815 0.0 0.0 103256 844 pts/0 S+ 11:00 0:00 grep vsftpd

作业 4:踢出一个从远程登录到本机的用户
[[email protected] ~]# w
15:56:09 up 2:16, 6 users, load average: 0.00, 0.00, 0.00
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.1.144 10:10 4:28m 0.72s 0.72s -bash
dong1 pts/1 192.168.1.144 10:10 5:39m 0.08s 0.08s -bash
root pts/2 192.168.1.144 12:12 3:21m 0.11s 0.11s -bash
dong1 pts/3 192.168.1.144 12:19 3:28m 0.08s 0.08s -bash
root pts/4 192.168.1.144 15:50 0.00s 0.15s 0.01s w
hr01 pts/5 192.168.1.144 15:50 5:44 0.04s 0.04s -bash

[[email protected] ~]# pkill -u hr01 结束用户hr01的进程

[[email protected] ~]# w
15:56:19 up 2:16, 5 users, load average: 0.00, 0.00, 0.00
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.1.144 10:10 4:28m 0.72s 0.72s -bash
dong1 pts/1 192.168.1.144 10:10 5:39m 0.08s 0.08s -bash
root pts/2 192.168.1.144 12:12 3:21m 0.11s 0.11s -bash
dong1 pts/3 192.168.1.144 12:19 3:28m 0.08s 0.08s -bash
root pts/4 192.168.1.144 15:50 0.00s 0.16s 0.00s w



[[email protected] ~]# w
15:58:16 up 2:18, 6 users, load average: 0.00, 0.00, 0.00
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.1.144 10:10 4:30m 0.72s 0.72s -bash
dong1 pts/1 192.168.1.144 10:10 5:41m 0.08s 0.08s -bash
root pts/2 192.168.1.144 12:12 3:23m 0.11s 0.11s -bash
dong1 pts/3 192.168.1.144 12:19 3:30m 0.08s 0.08s -bash
root pts/4 192.168.1.144 15:50 0.00s 0.37s 0.21s w
dong1 pts/5 192.168.1.144 15:58 3.00s 0.05s 0.00s sleep 10000

[[email protected] ~]# pkill -t pts/5 //终止 pts/5上所有进程
[[email protected] ~]# w
15:59:04 up 2:19, 6 users, load average: 0.00, 0.00, 0.00
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.1.144 10:10 4:31m 0.72s 0.72s -bash
dong1 pts/1 192.168.1.144 10:10 5:42m 0.08s 0.08s -bash
root pts/2 192.168.1.144 12:12 3:24m 0.11s 0.11s -bash
dong1 pts/3 192.168.1.144 12:19 3:31m 0.08s 0.08s -bash
root pts/4 192.168.1.144 15:50 0.00s 0.17s 0.00s w
dong1 pts/5 192.168.1.144 15:58 51.00s 0.05s 0.05s -bash



[[email protected] ~]# pkill -9 -t pts/5 //终止 pts/5 上所有进程 并结束该 pts/5
[[email protected] ~]# w
16:00:09 up 2:20, 5 users, load average: 0.00, 0.00, 0.00
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.1.144 10:10 4:32m 0.72s 0.72s -bash
dong1 pts/1 192.168.1.144 10:10 5:43m 0.08s 0.08s -bash
root pts/2 192.168.1.144 12:12 3:25m 0.11s 0.11s -bash
dong1 pts/3 192.168.1.144 12:19 3:32m 0.08s 0.08s -bash
root pts/4 192.168.1.144 15:50 0.00s 0.20s 0.03s w

原文地址:http://blog.51cto.com/8450442/2325619

时间: 2024-07-31 02:26:37

20181203使用信号控制进程的相关文章

linux信号处理--通过发送信号控制进程

要求: 实现两个程序mysignal.mycontrl, mycontrl给mysignal发送SIGINT信号,控制mysiganl是否在屏幕打印"hello,world"字符串. //makefile .SUFFIXES: .c .o CC=gcc SRCS1=mysignal.c SRCS2=mycontrol.c OBJS1=$(SRCS1:.c=.o) OBJS2=$(SRCS2:.c=.o) EXEC1=mysignal EXEC2=mycontrol all: $(OBJ

PHP 共享内存使用与信号控制

共享内存 共享内存的使用主要是为了能够在同一台机器不同的进程中共享一些数据,比如在多个 php-fpm 进程中共享当前进程的使用情况.这种通信也称为进程间通信(Inter-Process Communication),简称 IPC. PHP 内置的 shmop 扩展 (Shared Memory Operations) 提供了一系列共享内存操作的函数(可能是用的人不多吧,这一块儿的文档还没有中文翻译).在 Linux 上,这些函数直接是通过调用 shm* 系列的函数实现,而 Winodows 上

Nginx 的信号控制

摘自:Nginx服务器初识:Nginx启动.停止与信号控制 名称 功能 说明 HUP 重启   QUIT 从容关闭   TERM 快速关闭   INT 从容关闭   USR1 切换日志文件 通常用在切换日志或切割日志文件中用到 USR2 平滑升级可执行进程 低版本升级为高版本 WINCH 从容关闭工作进程 work process

nginx 的信号控制概述

<nginx 在ubuntu 上的启动,停止,重启>中的停止和重启命令基本都是用信号来控制的.这是一些简单的信号控制. 在Nginx服务器中,通常情况都是通过对其发送控制信号进行控制的,除了以上所说的简单信号控制之外,还有很多的信号控制.在此,我们需要知道一些常见的信号控制命令. Nginx常见的信号控制: HUP 重启 QUIT 从容关闭 TERM 快速关闭 INT 从容关闭 USR1 切换日志文件 USR2 平滑升级可执行进程 WINCH 从容关闭工作进程 sudo kill –WINCH

进程篇(3: 基本进程控制:进程的退出)--请参照本博客“操作系统”专栏

1. exit函数: 进程的五种正常的结束方式: 在main函数中执行return语句,这等效于exit; 调用exit函数.此函数由ISO C定义,其操作包括运行各终止处理程序,然后关闭所有标准I/O流等. 调用_exit或_Exit函数,ISO C定义了_Exit函数,目的是为了为进程提供一种无需运行终止处理程序和信号处理程序而终止的方法.并不处理标准I/O流! 进程的最后一个线程在其启动例程中执行返回语句,然后该进程以终止状态0返回. 进程的最后一个线程调用pthread_exit函数.

Nginx的信号控制

信号列表: TERM, INT Quick shutdown QUIT Graceful shutdown  优雅的关闭进程,即等请求结束后再关闭 HUP Configuration reload ,Start the new worker processes with a new configuration Gracefully shutdown the old worker processes 改变配置文件,平滑的重读配置文件 USR1 Reopen the log files 重读日志,在

一、进程与信号之进程相关系统调用

进程调用函数wait(),waitpid() #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status) //等待所有子进程,返回任一终止子进程的状态,阻塞方式 pid_t waitpid(pid_t pid,int *status,int options) //指定子进程pid等待终止返回,option设置是否阻塞 status参数 为空时,代表任意状态结束的子进程,若不为空,则代表指定状态结束的子进程

查看,控制进程

程序:程序是保存在外部存储介质(如硬盘)中的可执行代码和数据的静态集合 进程:进程是运行在CPU及内存中出于动态执行状态的计算机程序,每个程序启动后可以创建多个进程 例如web,大量用户同时访问是,httpd服务会创建多个进程来提供服务 1.查看进程 (1.ps命令:查看静态的进程统计信息(ProcessesStatistic) a:显示当前终端下的所有进程,包括其他用户的进程,与x选项结合是将显示系统中左右的进程信息 u:使用以用户为主的格式输出进程信息 x:显示当前用户所有终端下的进程信息

shell的单、多、控制进程

shell的单.多.控制进程的使用方法 一.100个任务使用200秒(普通完成) cat process2.sh  #!/bin/bash function aaa ()  {  start=`date "+%s"`  for ((i=1;i<=100;i++))  do  echo test;sleep 2  done end=`date "+%s"`  echo "time:`expr $end - $start`"  }  aaa