Organizations

2 results for Systemd
  • systemd模板声明 这里常见与某些变量传递, 比如: sudo systemctl start [email protected] # 可以看到其实内部系统配置文件为 [email protected] 这种就是 Systemd 的模板服务, 用于调用可变的系统服务. [Unit] # 内部采用 %I 获取到外部 [email protected] 传入 yyy 模板值 Description=Temple Service By %I After=network.target nss-lookup.target 这里 systemd 内置不少可能需要的变量, 这些模板服务依赖大量系统环境, 所以编写的时候需要在 Description 打印好做好排查: %n: 完整的 Unit 文件名字,包括 .service 后缀名 %N: 完整的 Unit 文件名字,不包括 .service 后缀名 %p: Unit 模板文件名中 @ 符号之前的部分,不包括 @ 符号 %P: Unit 模板文件名中 @ 符号之前的部分,包括 @ 符号 %i: Unit 模板文件名中 @ 符号之后的部分,不包括 @ 符号和 .service 后缀名 %I: Unit 模板文件名中 @ 符号之后的部分,包括 .
    systemd Created Fri, 29 Sep 2023 18:01:24 +0800
  • systemd用户分配应用启动环境 这里源于多用户登录的时候,想要各自用户达成运行 systemd 以下效果: # 常见的 systemd 启动服务 sudo systemctl start nginx.service # 但是现在要求生成某个服务, 让其只允许启动自己家目录的应用, 类似如下: systemcl start owner-worker.service # 这个服务会根据当前登录的不同用户在自己 Home 目录下创建自己的工具目录 对于 Linux 这种多用户分配的时候, 需要自己与根据自己根目录生成不同开发配置等就需要这种效果. 常见的系统服务脚本都是放置于 /lib/systemd/system, 但是如果区分个人用户则是放置于 /lib/systemd/user 之中, 所以这里脚本已经放置于此: # 编写用户级别的启动服务 sudo vim /lib/systemd/user/owner-worker.service 这里需要先科普下 systemd 模板声明变量, 建议先了解好内置模板变量再进行编写. # owner-worker.service 自动创建根目录下工作目录 [Unit] Description=Project Worker(Path: %h/workspace) After=network.target nss-lookup.target [Service] # 单次执行的服务 Type=oneshot # 单次服务需要追加启动项目 RemainAfterExit=yes # 注意别追加 User/Group 配置项, 因为是需要根据 ssh 用户启动 ExecStart=/bin/mkdir -p %h/workspace # 这里恶趣味下关闭自动清理目录 ExecStop=/bin/rm -p %h/workspace [Install] # 这里采用系统默认配置 WantedBy=default.
    systemd Created Fri, 29 Sep 2023 17:59:25 +0800