7 linux bash shell ubuntu ubuntu-16.04
我正在为脚本使用systemd服务,我需要从home / user / .bashrc设置环境值
source /home/user/.bashrc
在脚本中不起作用,并且systemd种子不支持源功能。帮我
Cha*_*ffy 11
让外壳程序执行启动脚本,然后执行命令,而不是尝试生成EnvironmentFile 。这避免了可能导致不匹配的步骤(例如,在如何env
存储环境与systemd EnvironmentFile
选项如何加载环境之间)。
[Service]
Type=simple
User=user
Group=user
ExecStart=/bin/bash -l -c 'exec "$@"' _ your-command arg1 arg2 ...
Run Code Online (Sandbox Code Playgroud)
在这里,bash -l
我们显式地使用source $0
并传递/home/user/.bashrc
该位置,而不是用来运行登录外壳。
[Service]
Type=simple
User=user
Group=user
ExecStart=/bin/bash -c '. "$0" && exec "$@"' /home/user/.bashrc your-command arg1 arg2 ...
Run Code Online (Sandbox Code Playgroud)
.bashrc
文件通常用于设置交互式环境。这意味着它们的设置通常不适用于服务。EnvironmentFile
的服务以供您手动审核,这意味着您可以确切了解服务的运行方式,并且可以与交互式环境分开进行配置。如果您手工审核过环境文件在由Shell执行时具有相同的含义,那么您也可以set -a; source /path/to/your-environment-file; set +a
在其中运行以.bashrc
获取其环境变量。EnvironmentFile
在用户不可写的位置使用,/etc/conf.d
比在该用户的主目录下的点文件更安全。 归档时间: |
|
查看次数: |
5405 次 |
最近记录: |