package main;

import (
"os"
"os/signal"
"fmt"
) //signal包中提供了两个函数
//Notifyf()用于监听信号
//Stop()用于停止监听 func main() {
ch := make(chan os.Signal);
//notify用于监听信号
//参数1表示接收信号的channel
//参数2及后面的表示要监听的信号
//os.Interrupt 表示中断
//os.Kill 杀死退出进程
signal.Notify(ch, os.Interrupt, os.Kill); //获取信号,如果没有会一直阻塞在这里。
s := <-ch;
//我们通过Ctrl+C或用taskkill /pid -t -f来杀死进程,查看效果。
fmt.Println("信号:", s);
}

package main;

import (
"os"
"os/signal"
"fmt"
) func main() {
ch := make(chan os.Signal);
//如果不指定要监听的信号,那么默认是所有信号
signal.Notify(ch); //停止向ch转发信号,ch将不再收到任何信号
signal.Stop(ch);
//ch将一直阻塞在这里,因为它将收不到任何信号
//所以下面的exit输出也无法执行
<-ch;
fmt.Println("exit");
}

  

golang语言中os/signal包的学习与使用的更多相关文章

  1. go语言中os/signal包的学习与使用

    package main; import ( "os" "os/signal" "fmt" ) //signal包中提供了两个函数 //No ...

  2. golang语言中os/user包的学习与使用

    package main; import ( "os/user" "fmt" ) func main() { //返回当前用户的结构 u, _ := user. ...

  3. golang语言中os/exec包的学习与使用

    package main; import ( "os/exec" "fmt" "io/ioutil" "bytes" ) ...

  4. golang语言中sync/atomic包的学习与使用

    package main; import ( "sync/atomic" "fmt" "sync" ) //atomic包提供了底层的原子级 ...

  5. golang语言中os包的学习与使用(文件,目录,进程的操作)

    os中一些常用函数的使用: package main; import ( "os" "fmt" "time" "strings&q ...

  6. php 中函数获取可变参数的方法, 这个语法有点像 golang 语言中的

    原文呢:http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.strict Onl ...

  7. golang语言中bytes包的常用函数,Reader和Buffer的使用

    bytes中常用函数的使用: package main; import ( "bytes" "fmt" "unicode" ) //byte ...

  8. golang语言中的context详解,Go Concurrency Patterns: Context

    https://blog.golang.org/context Introduction In Go servers, each incoming request is handled in its ...

  9. C语言中的signal函数

    signal是一个系统调用.是一种特殊的中断,当某种特定的"软件中断"发生时.用于调用的程序.中断通常是程序运行中出现的特殊情况,如引用特殊内存中的非法地址, 浮点数被0除. si ...

随机推荐

  1. mysql网课部分笔记

    mysql> \s  查看当前数据库的状态 \c  取消当前所输入的命令或字符 ------------------------------------------------------- m ...

  2. Redis进阶实践之二如何在Linux系统上安装安装Redis(转载)(2)

    Redis进阶实践之二如何在Linux系统上安装安装Redis 一.引言 上一篇文章写了“如何安装VMware Pro虚拟机”和在虚拟机上安装Linux操作系统.那是第一步,有了Linux操作系统,我 ...

  3. list 转datatable

    //public static DataTable ListToDataTable(List<FwImage> entitys) //{ // //检查实体集合不能为空 // if (en ...

  4. WEB前端问题——img标签的onclick事件无法响应问题【转载】

    一个纠结了一下午的问题,img标签里面的onclick事件无法响应.最终找到了错误原因,是因为img标签的id与onclick事件的方法名相同. 于是接着又测试了一下,发现name名和方法名相同也会导 ...

  5. 显卡安装一直循环在登录界面——解决之-T450安装显卡驱动和cuda7.5发现的一些问题

    今天,在笔记本T450上,要装zed双目相机的驱动,需要显卡模块和cuda7.5,使用了三种方式,才成功. 1.使用 sudo ubuntu-drivers devices 来查看显卡支持驱动版本,因 ...

  6. myEclips 中的项目复制重命名

    现在有个项目Pj ,要复制一个Pu 一,退出 myEclips. 二,找到Pj备份一份到其他目录. 三,进入myEclips,F2修改项目名Pj至Pu. 四,将备份拷贝回原目录. 五,将Pj重新引进m ...

  7. js-for (var in )遍历顺序乱了

    存放的key 为如下: “01”,“02”,“03”,········“10”,“11”,“12” 遍历之后“10”,“11”,“12”, “01”,“02”,“03”,········ 解决办法:把 ...

  8. room 二分图最大匹配KM

    #include<bits/stdc++.h> #define fi first #define se second #define INF 0x3f3f3f3f #define fio ...

  9. async.series

    [async.series] series适用于顺序执行异步且前后无关联的调用.对于顺序执行异步且前后有叛逆的调用,则需要使用waterfall. If any functions in the se ...

  10. 第二篇:Jmeter功能概要

    一.jmeter工具组成部分: 1.资源生成器:用于生成测试过程中服务器,负载机的资源代码: 2.用户运行器:通常是一个脚本运行引擎,根据脚本的要求模拟指定用户行为,(lr中的controller) ...