I have a Go app, and I'm trying to run it as a systemctl
service (Ubuntu 18.04).
I'm using godotenv:
func init() {
var env map[string]string
env, err := godotenv.Read()
if err != nil {
panic(err)
}
}
I have my .env
file in the same directory where my executable is.
I've created a service
file:
[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
After executing sudo systemctl start my-go-app.service
, then sudo systemctl status my-go-app.service
, I got these in my logs:
Starting my-go-app...
panic: open .env: no such file or directory
What's wrong?
While executing main
directly, there are no such problems.
I have my .env file in the same directory where my executable is.
Then you need to configure your working directory to match:
[Service]
...
WorkingDirectory=/var/path/to/my/app
Remember to run systemctl daemon-reload
after changing any unit file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With