给 Systemd service配置环境变量

2023-05-16

事件起因,新加了个vncserver服务需要链接某个共享库,这个共享库放在自定义的库路径中,需要在服务启动前设置LD_LIBRARY_PATH环境变量。

把export LD_LIBRARY_PATH加到了 /etc/profile.d/中,直接在终端上运行vncserver是可以运行的。

但是运行systemd vncserver服务提示找不到库,所以有疑问,systemd需要如何配置所需的环境变量。

在网上翻了一下文档,总结如下:

1、/etc/profile或者/etc/security/limit.d这些文件中配置的环境变量仅对通过pam登录的用户生效,而systemd是不读这些配置的,所以这就造成登录到终端时查看环境变量和手动启动应用都一切正常,但是systemd无法正常启动应用

2、如果环境变量只有某个服务使用,可以在服务里用  Environment  或 EnvironmentFile来单独为该服务的进程设置环境变量。
参考:http://www.jinbuguo.com/systemd/systemd.exec.html#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F

3、如果需要给systemd配置全局的默认参数,全局的配置在/etc/systemd/system.conf和/etc/systemd/user.conf中。同时还会加载两个配置文件对应的目录中所有的.conf配置文件/etc/systemd/system.conf.d/.conf和/etc/systemd/user.conf.d/.conf,一般的服务单元使用system.conf即可。加载优先级system.conf最低,所以system.conf.d目录中的配置会覆盖system.conf的配置。
     因为全局环境变量是设置的systemd(pid=1)进程的,而所有的服务进程都是该systemd的子进程(或孙子等),所以对所有服务生效。

具体可以参考:
man systemd-system.conf
http://www.jinbuguo.com/systemd/systemd-system.conf.html

4、目前我已知的是更改system.conf配置,需要重启系统才能生效,还没找到如何重新加载此配置

5、systemd设置环境变量不会在字符串内部进行变量展开(也就是"$"没有特殊含义),这个在第2点的链接里有详细说明;

文章参考:
https://blog.csdn.net/lizao2/article/details/81030380

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

给 Systemd service配置环境变量 的相关文章

随机推荐

  • FTP多目录和多用户配置(用户隔离/虚拟目录)

    FTP多目录和多用户配置 xff08 用户隔离 虚拟目录 xff09 假设有四个部门分别是user1 user2 user3 admin 要求四个部门都有各自有独立的访问目录 xff0c 且admin部门可以访问其他部门的文件但不能对其进行
  • Android ViewBinding 使用指南— 全新的视图绑定工具

    通过视图绑定功能 xff0c 您可以更轻松地编写可与视图交互的代码 在模块中启用视图绑定之后 xff0c 系统会为该模块中的每个 XML 布局文件生成一个绑定类 绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用 Tip xff
  • java枚举与前端的交互

    java后台与前端交互时 xff0c 如果java参数属性是枚举类型 xff0c 则交互时需要进行序列化与反序列化 当需要把枚举格式以 34 enum 34 34 code 34 34 34 34 message 34 34 34 格式返回
  • Android日志通过logcat实时输出至文件

    Android日志通过logcat实时输出至文件 一 前言二 利用logcat系统方法将日志输出到文件中 一 前言 相信在开发结束后 xff0c 开发者在开发完成后 xff0c 将apk发给测试人员 xff0c 会出现一下很尴尬的问题 测试
  • Android studio 冲突解决

    通过gradle引入依赖 xff0c 想来经常会遇见多个依赖引用重复的包 xff0c 导致项目编译不过 xff0c 以下是我遇见时的一个解决思路 一 使用task查看gradle可编译版本 gradlew task 以上代码片可查看可编译的
  • Android 使用Properties配置文件

    相信各位在进行Android开发过程中会遇见有时需要把一些配置信息保存到本地的需求 xff0c 当然Android中有SharedPreferences可以提供给我们使用 xff0c 但是知道另一种方法也不错 xff0c 是吧 以下是针对使
  • linux(adb)常用命令

    方便以后查找一下简单记录下Linux adb也适用 的常用命令 一 ls ls abc al ls指令主要用来查看目录下文件的信息 xff0c 基本格式 ls 路径 可选 指令 可选 路径默认为当前路径 xff0c 填写后为指定目录 指令
  • Android输出调试日志至文件中

    本博客讲述的是android输出日志到文件中 xff0c 不依赖于任何类 xff0c 仅需配置读写外部存储卡的权限 xff0c 可叠加输出日志文件 xff0c 可区别调试模式与正式发布版本进行选择性输出 可直接在项目中使用 下面贴上代码 代
  • WinForm使用Aspose.cells利用模板导出Excel

    Aspose是一个处理文件格式的组件 可对Words Excel等工具进行操作 实现代码数据导出 在这里我介绍以及提供Aspose对Excel Aspose Cells 导出的工具类 1 首先介绍Aspose Cells的基础知识 xff1
  • Android实现View隐藏显示渐变动画

    这是一个动画的工具类 xff0c 实现了界面标签从Visible gt InVisible 以及InVisible gt Visible的逐渐显示与隐藏 下面是它的全部代码 span class hljs keyword import sp
  • 消息中间件及WebSphere MQ入门

    级别 初级 娄丽军 软件部售前工程师 2003 年 11 月 01 日 消息队列技术是分布式应用间交换信息的一种技术 消息队列可驻留在内存或磁盘上 队列存储消息直到它们被应用程序读走 通过消息队列 xff0c 应用程序可独立地执行 它们不需
  • SecureCRT下载地址(包含破解程序)

    SecureCRT是访问linux比较好的工具 xff0c 在这里分享一下下载的地址 xff0c 内部并且附带了破解程序 xff0c 软件在这个地址SecureCRT下载地址 包含破解程序 xff08 分享密码 yk8m xff09 破解的
  • Android databinding详解(一)--layout解析

    在上一篇文章Android Databinding 初识 xff0c 介绍了Databinding及代码示例 xff0c 在这里将从代码的层次上进行Databinding的详细讲解 本章节主要讲解Data binding的xml文件的代码书
  • Android databinding(详解三)--自定义属性使用

    在上面的几篇文章 Android databinding中Activity详解 从一个例子中解析了 xff0c Android databinding的使用 xff0c 本篇文章是databinding中的自定义属性的使用 databind
  • 小白的编程经验(终端个性化设置、自定义命令)

    在日常学习中 xff0c 可能会想要让终端显示个性化 xff0c 自定义各种功能命令提高学习效率 这篇文章就带大家了解一下如何个性化设置终端与自定义命令 一 外观设置 对于终端外观的设置 xff0c 主要是设置字体大小 光标形状和终端的背景
  • user版本如何打开uart,让android log从串口kernel log输出

    user版本打开uart 如何在user版本中使用串口 uart bootable bootloader lk app mt boot mt boot c span class hljs number 582 span span class
  • 在idea中创建maven工程,搭建mybatis框架,完成单表增删改查操作

    1 在数据库中创建一个表 2 在pom xml里面导入maven依赖 4 可以在Mybatis 3官方文档中找到MySQL连接池 xff0c 在main文件下创建mybatis config xml文件并将MySQL连接池粘贴到 xml文件
  • No plugin found for prefix 'exec' in the current project and the plugin groups (Failure to transfer)

    这个问题困扰了我很长时间 xff0c 百度找了很久都没有找到解决方法 xff0c 最后发现可能是因为服务商网络问题导致访问被禁止了 xff0c 然后我就换用阿里云的库 xff0c 替换maven官网的库 xff0c 找到maven安装地址或
  • python循环结构

    一 循环是什么 xff1f 循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构 它由循环体中的条件 xff0c 判断继续执行某个功能还是退出循环 根据判断条件 循环结构又可细分为以下两种形式 先判断后执行的循环结构和先执行后判断的
  • 给 Systemd service配置环境变量

    事件起因 xff0c 新加了个vncserver服务需要链接某个共享库 xff0c 这个共享库放在自定义的库路径中 xff0c 需要在服务启动前设置LD LIBRARY PATH环境变量 把export LD LIBRARY PATH加到了