gpt4 book ai didi

Go 在 Ubuntu 上作为 systemctl 服务运行时找不到文件

转载 作者:IT王子 更新时间:2023-10-29 00:57:17 25 4
gpt4 key购买 nike

我有一个 Go 应用程序,我正在尝试将其作为 systemctl 服务运行 (Ubuntu 18.04)。

我正在使用 godotenv :

func init() {
var env map[string]string
env, err := godotenv.Read()
if err != nil {
panic(err)
}
}

我的 .env 文件位于我的可执行文件所在的同一目录中。

我创建了一个服务文件:

[Unit]
Description=my go app
Requires=local-fs.target
After=rsyslog.service

[Service]
Type=forking
GuessMainPID=no
StandardInput=null
ExecStart=/var/path/to/my/app/main

[Install]
WantedBy=default.target

在执行 sudo systemctl start my-go-app.servicesudo systemctl status my-go-app.service 之后,我在日志中得到了这些:

Starting my-go-app...
panic: open .env: no such file or directory

怎么了?

直接执行main就没有这个问题。

最佳答案

I have my .env file in the same directory where my executable is.

然后你需要配置你的工作目录来匹配:

[Service]
...
WorkingDirectory=/var/path/to/my/app

记得在更改任何单元文件后运行systemctl daemon-reload

关于Go 在 Ubuntu 上作为 systemctl 服务运行时找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55772127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com