我有一个基本的“服务单元”文件,如下所示。
[Unit]
Description=Certprovider service
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=5s
ExecStart=/home/mert/certprovider/certprovider
WorkingDirectory=/home/mert
User=root
Group=root
[Install]
WantedBy=multi-user.target
我在项目的根目录中有.env文件。
CA_DIR_URL=https://acme-v02.api.letsencrypt.org/directory
EMAIL=mertsmsk0@gmail.com
HOST=127.0.0.1
PORT=8557
我用以下几行加载这个文件。
err := godotenv.Load()
if err != nil {
log.Fatalln("Error loading .env file")
}
服务一直运行良好,但我无法访问PORT环境变量。因此我无法启动网络服务器,因为该端口无法侦听。我打印.env中不包括PORT的所有环境变量。我将其名称更改为APP_PORT但它是一样的。
神秘的部分是我可以访问.env文件中的其他变量。除此之外,当我在单元文件中添加以下行时,我可以访问该变量,但我不明白为什么我应该在单元文件中只添加PORT变量?
[Service]
Environment=PORT=8557
当我尝试将它作为二进制文件运行时,就会发生这种情况。因为我可以使用以下命令访问变量。
go run .
慕尼黑的夜晚无繁华
相关分类