golang,用daemonize运行

时间:2017-03-20 09:42:50

标签: go daemon

构建到文件后。我用命令

通过daemonize运行它
daemonize /var/www/repo/bin/tracking_api 1>> /var/www/repo/bin/tracking_api.log

我看到它生成了一个新文件但该文件中没有任何内容。在代码我log.Print很多。

我只是知道关于GO的基本知识,请指导我记录。有没有更简单的方法来运行golang到服务器而不是使用daemonize?

3 个答案:

答案 0 :(得分:0)

将记录器日志转换为标准错误,重定向标准错误,它将正常工作。

/var/www/repo/bin/tracking_api 2>&1 >> /var/www/repo/bin/tracking_api.log

不幸的是,daemonize工具会关闭标准输入,输出和错误,因此唯一的解决方案是使用SetOutput函数更改日志文件。

答案 1 :(得分:0)

nohup /var/www/repo/bin/tracking_api > /var/www/repo/bin/tracking_api.log &

答案 2 :(得分:0)

你可以使用immortal基本上是一个主管,你可以像这样使用它:

immortal -l /var/www/repo/bin/tracking_api.log tracking_api

configuration YAML文件,为您提供更多选项,例如:

cmd: tracking_api
log:
    file: /var/www/repo/bin/tracking_api.log
    age: 86400 # seconds
    num: 7     # int
    size: 1    # MegaBytes
    timestamp: true # will add timesamp to log

如果您想在单独的文件中保留标准错误输出,可以使用以下内容:

cmd: tracking_api
log:
    file: /var/www/repo/bin/tracking_api.log
    age: 86400 # seconds
    num: 7     # int
    size: 1    # MegaBytes
stderr:
    file: /var/www/repo/bin/tracking_api.log
    age: 86400 # seconds
    num: 7     # int
    size: 1    # MegaBytes
    timestamp: true # will add timesamp to log