首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统服务单元文件中的动态变量

系统服务单元文件中的动态变量
EN

Unix & Linux用户
提问于 2016-11-17 07:01:02
回答 1查看 71.1K关注 0票数 25

是否有方法动态分配系统d服务单元文件中的环境变量?

我们有一台有4个GPU的机器,我们希望每个GPU可以旋转多个特定服务的实例。例如:

  • gpu_service@1:1.service
  • gpu_service@2:1.service
  • gpu_service@3:1.service
  • gpu_service@4:1.service
  • gpu_service@1:2.service
  • gpu_service@2:2.service
  • gpu_service@3:2.service
  • gpu_service@4:2.service
  • 令人作呕

因此,1:1、2:1等实际上是服务单元文件中的%i。

为了使服务绑定到特定的GPU,服务可执行文件检查某个环境变量,例如:

代码语言:javascript
复制
USE_GPU=4

是否有一种方法可以在服务单元文件中获取%i并通过某些(shell)函数运行它来派生GPU号,然后可以相应地设置USE_GPU环境变量?

最重要的是,我不希望编写多个/etc/systemd/system/gpu_service@x:y.service/local.conf文件的麻烦,只是为了可以旋转更多的实例。

EN

回答 1

Unix & Linux用户

发布于 2016-11-17 13:35:18

没有建在路上。您需要在服务开始之前完成这些工作。一种方法是将其放入环境文件中。

代码语言:javascript
复制
[Service]
# Note you need to escape percentage sign
ExecStartPre=/bin/sh -c "my_awesome_parser %%i > /run/gpu_service_%i"
EnvironmentFile=/run/gpu_service_%i
ExecStart=...
票数 10
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/323914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档