zoukankan      html  css  js  c++  java
  • golang 中创建daemon的方法

    https://github.com/takama/daemon

    https://github.com/immortal/immortal/blob/master/fork.go                  这个是比较原始的最接近c语言的实现,它里面还有很多原始c语言的东西的golang实现:

    // fork.go
    package immortal import (
    "os" "os/exec" "syscall" ) // Fork crete a new process func Fork() (int, error) { args := os.Args[1:] cmd := exec.Command(os.Args[0], args...) cmd.Env = os.Environ() cmd.Stdin = nil cmd.Stdout = nil cmd.Stderr = nil cmd.ExtraFiles = nil cmd.SysProcAttr = &syscall.SysProcAttr{ // Setsid is used to detach the process from the parent (normally a shell) // // The disowning of a child process is accomplished by executing the system call // setpgrp() or setsid(), (both of which have the same functionality) as soon as // the child is forked. These calls create a new process session group, make the // child process the session leader, and set the process group ID to the process // ID of the child. https://bsdmag.org/unix-kernel-system-calls/ Setsid: true, } if err := cmd.Start(); err != nil { return 0, err } return cmd.Process.Pid, nil }
  • 相关阅读:
    接口--类似于抽象类但不是抽象类
    final
    抽象类
    static示例
    深入理解static关键字
    IDEA 出现错误:找不到或无法加载主类
    IDEA的java源码文件左边有一个红色的J
    this关键字
    构造方法、方法的重载
    访问控制符
  • 原文地址:https://www.cnblogs.com/welhzh/p/9178034.html
Copyright © 2011-2022 走看看