gpt4 book ai didi

linux - 如何从 systemd 配置文件中的函数输出设置 ExecStart?

转载 作者:行者123 更新时间:2023-12-04 18:59:38 25 4
gpt4 key购买 nike

我创建了一个 systemd目录 /lib/systemd/system/ 中的服务文件发射nodejs作为一项服务。问题是该文件包含到 nodej 的硬编码路径。在 ExecStart field 。这意味着任何时候我更新nodejs我将不得不手动更改此服务文件。有没有办法使用which node下面文件中的命令自动设置路径?

[Unit]
Description=node-server-1
After=network.target

[Service]
Environment=NODE_PORT=3001
Type=simple
User=manid
ExecStart=/home/manidos/.nvm/versions/node/v14.15.1/bin/node /home/manidos/node-nginx/index.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

最佳答案

您可以在 ExecStart 中运行一个简单的 bash 脚本。线:ExecStart=/bin/bash -c '$$(/usr/bin/which node) /home/manidos/node-nginx/index.js'基本上,这是运行 which子shell中的命令并传递其标准输出以由外部脚本运行。在 systemd 单元文件中使用这种特殊语法需要双美元,如 systemd.service manpage 中所述。 .

关于linux - 如何从 systemd 配置文件中的函数输出设置 ExecStart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65087137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com