Ai
1 Star 0 Fork 0

邢楠/toolbox

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
daemonize.go 1.01 KB
一键复制 编辑 原始数据 按行查看 历史
邢楠 提交于 2021-05-08 16:52 +08:00 . # 144
/**
* @Author : xingnan
* @Email : 457415936@qq.com
* @Time : 16:45
* @File : daemonize.go
* @Project : toolbox
* @Description : 守护进程
*/
package com
import (
"os"
"path/filepath"
"strconv"
"strings"
)
// AppIsRunningEx daemon is running
func AppIsRunningEx(pidfile string) (int, error) {
line, err := ReadFileFirstLine(pidfile)
if err != nil {
return 0, err
}
pidstr := strings.TrimSpace(line)
pid, err := strconv.Atoi(pidstr)
if err != nil {
return 0, err
}
if err := processIsRunning(pid); err != nil {
return 0, err
}
return pid, nil
}
// AppImmobilized pid
func AppImmobilized(pidfile string) error {
piddir := filepath.Dir(pidfile)
if _, err := os.Stat(piddir); err != nil && os.IsNotExist(err) {
if err = os.MkdirAll(piddir, 0775); err != nil {
return err
}
}
file, err := os.Create(pidfile)
if err != nil {
return err
}
defer file.Close()
if _, err := file.WriteString(strconv.Itoa(os.Getpid())); err != nil {
return err
}
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/xingnan/toolbox.git
git@gitee.com:xingnan/toolbox.git
xingnan
toolbox
toolbox
v0.1.81

搜索帮助