文档章节

[UMU 学 golang](7) 设置进程退出码

UMU
 UMU
发布于 2018/03/31 20:45
字数 206
阅读 119
收藏 0

常规方案

直接用 os.Exit(exit_code),但这个太暴力了,我们需要装逼一点的,于是找到了这个:https://stackoverflow.com/questions/24601516/correct-way-to-set-exit-code-of-process

package main

import (
    "fmt"
    "os"
)

func main() {
    code := 0
    defer func() {
        os.Exit(code)
    }()
    defer func() {
        fmt.Println("Another deferred func")
    }()
    fmt.Println("Hello, 世界")
    code = 1
}

问题

调用 panic 的时候就知道以上的方法存在不足!panic 之后会导致 main 退出,本来紧接着应该打印 Trace Log,然而 main 退出时调用了 os.Exit(),然后没有然后了……

果然是装逼被雷劈,本来 panic 时,退出码应该是 2 的,结果由于以上装逼代码的作用,退出码变成了 0!如果 panic 是自己主动调用的,那还可以改改,使用别的方式;如果是其它库函数的就难办了……

© 著作权归作者所有

UMU

UMU

粉丝 119
博文 112
码字总数 44043
作品 0
厦门
程序员
私信 提问
TODO:Golang Linux进程退出说明

TODO:Golang Linux进程退出说明 Golang使用os.Exit(code)进程退出导致当前程序退出并返回给定的状态代码。传统上,code代码为零表示成功退出,非零错误退出。 syscall.Exit可以调用不同平台...

OneTODO
2016/11/15
89
0
supervisor运行golang守护进程

Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,它提供了大量的功能来实现对进程的管理。 程序的多进程启动,可以配置同时启动的进程数,而不需要一个个启动 程序...

Minho
2016/07/09
115
1
[UMU 学 golang](1) Hello code!

  一直玩 WSH,被说逼格跟不上时代,又据说 go 即将发布的 1.5 版解决了 GC stop-the-world 问题了,所以 UMU 打算以后用它来开发工具。   最近想统计代码行数,以前用 VBS 写的一时间居...

UMU
2015/08/19
0
1
[UMU WSH 教程终结篇](48) FSO 应用实例 - 批量重命名 WP 视频

UMU WSH Git:http://git.oschina.net/umu618/umu-wsh/ 本篇为 UMU WSH 教程终结篇,以后更倾向使用 Windows PowerShell 和 golang 来编写工具。 早期 WP 拍摄的视频,命名格式为 WPYYYYMMDD...

UMU
2016/02/02
100
0
任务管理工具 jiacrontabv 1.4.5 更新

提供可视化界面的定时任务&常驻任务管理工具。 v1.4.5 1、日志查看页面现在默认按照时间倒序 2、修复常驻任务无法添加多个邮箱 3、修复服务器列表任务数量显示异常 4、修复rpc_listen_addr 配...

iwannay
2018/10/29
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

easyui datagrid 分页 详解

1.界面 2.前端代码 <table id="dg" title="文章管理" class="easyui-datagrid" fitColumns="true" pagination="true" url="${pageContext.request.contextPath}/admin/showAllTrainee" ......

小橙子的曼曼
10分钟前
0
0
HashTable vs HashMap vs TreeMap

HashMap是HashTable的轻量级实现(非线程安全),HashMap可以通过collections.synchronizedMap()来达到同步效果。 HashTable:contains,HashMap:containsKey、containsValue HashMap允许...

cherryboy
12分钟前
0
0
OLTP和OLAP的比较

OLTP:On-Line Transaction Processing联机事务处理过程,也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用...

woshixin
21分钟前
0
0
docker 搭建elasticsearch集群

docker 搭建es集群 1、拉去es镜像 docker pull docker.io/elasticsearch:5.6.8 2、 创建挂载目录 mkdir -p /docker/es/configmkdir -p /docker/es/data1mkdir -p /docker/es/data2......

北岩
36分钟前
2
0
Linux检测邮箱是否真实存在方法

例如我们要验证 laiconglin3@126.com 是否真实存在 nslookup -type=MX 126.com 查找126.com 的MX 地址 test@test:~$ nslookup -type=MX 126.comServer:127.0.1.1Address:127.0.1.1#53......

laiconglin
48分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部