2017-04-04 358 views
1

我怎么使用操作系统的内存环境变量 我已经尝试设置内存限制领域利用可变MY_LIMIT这样, 服务配置设置:Systemd服务配置使用环境变量

[Unit] 
Description=Blabla 

[Service] 
Environment="MY_LIMIT=1024" 
MemoryLimit=$MY_LIMIT 
ExecStart=script.sh 

但这并不似乎工作 正如我们所看到的是

sudo systemctl show myservice 

显示该操作系统的内存是分配了这个值,而不是

MemoryLimit=18446744073709551615 
+1

在服务配置/etc/systemd/system/yourservice.service。添加环境=“YOURMEMLIMIT” – CareFree

+0

感谢队友,但这就是我所做的 – sami

+0

哦,是的,我现在明白了。 :(我想知道如果插值是允许在服务配置 – CareFree

回答

2

systemd具有环境指令,它设置环境变量用于执行的处理。 [源] [1]

因此,在MemoryLimit中设置时,您的MY_LIMIT将不会被解释。

另外MemoryLimit已弃用,请改用MemoryMax=。 [来源] [2]

所以,你应该设置为:MemoryMax=1024M

+0

谢谢,MemoryMax是未知左值我的systemd(229),你gace引用ExecStart的例子worj形成我以及但不是在MemoryLimit中使用它时 – sami

+1

因为环境变量只会被解释为exec * –

+0

看来你是对的,在服务配置里面没有任何使用变量的选项吗? – sami