Golang 中国
4 回复
heimeil
#1 heimeil • 2017-11-14 18:31

三种情况:
1)这个进程如果能由你启动的话,直接在你的程序里用https://golang.org/pkg/os/exec/#Command来执行就直接能拿到全部标准流,或者用命令行参数重定向stderr到文件./cmd 2>/path/to/file,再读文件就行了;

2)如果是基础功能(系统组件或数据库之类),你不好去控制进程启动的话,这类标准组件都能配置日志输出到指定文件,配置后读文件就行了;

3)如果不允许你碰这个进程,只能通过pid去获取的话就比较麻烦,涉及Linux底层,拿不拿的到也还要看几种情况。

haha03942008
#2 haha03942008 • 2017-11-15 09:51

你好,我现在的问题是,我用command启动了一个进程。
我的程序是要时时监控我用command启动的进程的,因为要显示日志。
万一我的程序挂了,但是用command启动的进程没挂
我重启程序只能在数据库里面获取到pid,应为command启动的进程还存在,就不能再用command启动一次
现在只有pid。并且command启动的程序暂时还没有把日志重定向的功能

heimeil
#3 heimeil • 2017-11-15 10:49

先搞清楚你程序是怎么挂掉的

haha03942008
#4 haha03942008 • 2017-11-16 17:54

所以解决办法是,不要让程序挂掉…

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。