在systemd服务文件中从sh脚本设置环境变量

用户名

我正在尝试使用设置环境的现成的bash脚本。这是我要使用的服务:

[Unit]
Description=myserver service
After=multi-user.target

[Service]
Type=simple
User=ec2-user
Group=ec2-user
WorkingDirectory=/home/ec2-user/myserver/
ExecStart=/bin/sh -c '/home/ec2-user/myserver/config/myserverVars.sh ;/home/ec2-user/venv/bin/python  /home/ec2-user/myserver/myserver.py 2>&1 >> /home/ec2-user/myserver/logs/systemd_myserver.log' 
StandardOutput=append:/home/ec2-user/myserver/logs/systemd_stdout.log
StandardError=append:/home/ec2-user/myserver/logs/systemd_stderr.log

[Install]
WantedBy=multi-user.target

myserverVars.sh

#!/bin/bash
export [email protected]
export APP2_BIND_PASS=xxxxxx
export APP3=xxxxxx

/home/ec2-user/myserver/config/myserverVars.sh
永远不会设置其中的变量,并且在没有变量的情况下启动服务器,这是错误的。我试图避免使用环境密钥或环境文件。

芒登

如果希望脚本文件中定义的变量可用于运行该脚本的父环境,则需要提供脚本,而不是执行它。ExecStart更改为:

ExecStart=/bin/sh -c '. /home/ec2-user/myserver/config/myserverVars.sh ;/home/ec2-user/venv/bin/python  /home/ec2-user/myserver/myserver.py >> /home/ec2-user/myserver/logs/systemd_myserver.log 2>&1 ' 

请参见在bash中采购(“。”或“源”)与执行文件之间有什么区别?有关在源代码和执行脚本之间的区别的详细信息。

另请注意,我更改了重定向顺序。为了得到这两个标准错误和stdout到同一个文件,你需要> file 2>&12>&1 > file

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Systemd服务中设置环境变量

来自分类Dev

如何在 .NET systemd 服务中设置环境变量?

来自分类Dev

使用.sh文件设置环境变量

来自分类Java

在ant脚本中设置环境变量

来自分类Python

在python脚本中设置环境变量

来自分类Dev

在TCL脚本中设置环境变量

来自分类Dev

SETX从文件中设置环境变量

来自分类Dev

在 jenkins 文件中设置环境变量

来自分类Dev

在systemd服务文件中访问docker环境变量时遇到的问题

来自分类Dev

使用环境变量配置 Systemd 服务

来自分类Dev

在python脚本中调用bash配置文件以设置环境变量

来自分类Dev

使用 .sh 永久设置环境变量

来自分类Dev

在脚本化管道中设置环境变量

来自分类Dev

在python中设置调用bash脚本的环境变量

来自分类Dev

检查是否在配置脚本中设置了环境变量?

来自分类Java

检查是否在Ant脚本中设置了环境变量

来自分类Dev

在Shell脚本OS X中设置环境变量

来自分类Dev

在Shell脚本中为React应用设置环境变量

来自分类Dev

Jenkins-在执行脚本中设置环境变量

来自分类Dev

bash在脚本中的命令之前设置环境变量

来自分类Dev

从Jenkins中的Groovy脚本设置环境变量

来自分类Dev

Tcl-在脚本中设置父环境变量

来自分类Dev

如何通过Dockerfile中的脚本动态设置环境变量?

来自分类Dev

使用.sh文件导出环境变量

来自分类Dev

在服务脚本中使用环境变量

来自分类Linux

cmake:从脚本设置环境变量

来自分类Dev

通过脚本设置IIS环境变量

来自分类Dev

通过脚本设置环境变量(PATH等)

来自分类Dev

通过 Typescript 脚本设置环境变量