systemd-service

当内存需求较高时,Kaldi 应用程序无法作为 Debian systemd 服务加载
systemd-service

当内存需求较高时,Kaldi 应用程序无法作为 Debian systemd 服务加载

我有一个 C++ 应用程序,它加载 Kaldi ASR 模型。如果模型很小,则该应用程序能够加载模型并在命令行以及 Debian 12 下的 systemd 服务中运行。 但是,当我加载更大的 Kaldi ASR 模型时,服务无法加载,但它可以从命令行正常运行。我真的很困惑,作为服务运行时应用的限制是什么。服务文件中没有指定内存限制。 以下是服务文件: [Unit] Description=kaldiasr-english Wants=network-online.target After=syslog.target local-fs.target netw...

Admin

在 systemd 服务中运行 systemd-run --user
systemd-service

在 systemd 服务中运行 systemd-run --user

我有一个处理用户输入的 Web 应用程序,作为其中的一部分,运行一些命令来systemd-run --user --scope ...限制内存和 CPU 的使用率。 应用程序在正常运行时运行良好,但作为 systemd 服务运行时,我得到: Failed to connect to bus: No medium found 我需要在单位里做什么才能使服务启用此功能? ...

Admin

具有 DynamicUser 的 Systemd 服务无法写入其 CacheDirectory
systemd-service

具有 DynamicUser 的 Systemd 服务无法写入其 CacheDirectory

我正在运行 OpenSuse Leap 15.4。 我已经为bazel-remote远程缓存服务器,用于 Bazel 构建系统。 我希望使用该DynamicUser功能使服务更安全,并避免必须为服务手动创建用户。我在[Service]文件的部分中设置了以下参数: DynamicUser=yes CacheDirectory=bazel-remote 然后,在 上ExecStart,我将路径传递/var/cache/bazel-remote给了 bazel-remote 二进制文件。 问题二进制bazel-remote文件正在运行权限错误尝试写入文件夹时。它...

Admin

Systemd 模板单元实例顺序停止
systemd-service

Systemd 模板单元实例顺序停止

我有一个模板单元,必须创建它才能启动/停止在给定端口运行的一些服务。类似于[email protected],[email protected]。 [Unit] After=network.target PartOf=services.target [Service] ExecStart=app run --port %i ExecStopPost=sleep 5 [Install] WantedBy=multi-user.target 我创建了一个目标来同时管理所有这些服务。 cat services.target [Unit] ...

Admin

为什么 systemd 不捕获用 shell 脚本编写的用户服务子进程的输出?
systemd-service

为什么 systemd 不捕获用 shell 脚本编写的用户服务子进程的输出?

下面是我用 shell 脚本编写的出色服务: $ cat ~/junk/demoapp #! /bin/bash -eu while true do echo "in shell" ( echo "in subshell" ) /usr/bin/echo "in subprocess" sleep 1 done 它会产生一些重复的输出: $ ~/junk/demoapp in shell in subshell in subprocess in shell in subshell in subprocess in she...

Admin

如何找到 systemd 服务无法启动(服务的单元文件设置不正确)的确切原因?
systemd-service

如何找到 systemd 服务无法启动(服务的单元文件设置不正确)的确切原因?

这真的很烦人,systemd只响应说我的某个服务文件的配置是错误的,但是却没有具体说明哪里错了: /lib/systemd/system/auto_pgha.service: [Unit] Description=PostgreSQL High Availability After=network.service After=firewalld.service [Service] Type=simple WorkingDirectory=/etc/repmgr ExecStartPre=/bin/bash -c 'echo -e "\n" `date ...

Admin

如何将 systemd 服务的标准输出和错误连接到路径中带有日期的文件?
systemd-service

如何将 systemd 服务的标准输出和错误连接到路径中带有日期的文件?

我想在 systemd 下运行一个服务器进程,并将其标准输出和错误附加到一个文件中,其中文件路径中包含日期,如下所示: /initech/logs/tps-report-app/sales/2023/09/11/console.log 理想情况下,我希望该路径能够在日期改变时自动滚动,但如果没有,这也并不是世界末日,因为我们无论如何都会在一夜之间重启服务器。 我不想做的一件事是进行传统的日志轮换,其中输出被写入具有固定路径的文件中,然后稍后轮换到具有日期路径的文件中。 这StandardOutput 配置选项让我使用 附加输出到文件append:path,但...

Admin

从 podman 容器设置 MAINPID
systemd-service

从 podman 容器设置 MAINPID

我想发送带有就绪状态和主 pid 的 systemd 通知。不幸的是,systemd 似乎无法处理来自不同命名空间的 pid 转换。(只是猜测……) 具体来说,我正在启动一项服务: ExecStart=podman run --rm --cgroups=disabled -v /run/systemd:/run/systemd ... script.sh 启动脚本执行以下操作: echo "MAINPID=$$" | nc -uUN -w0 /run/systemd/notify 这似乎没有改变任何东西。 MAINPID 设置为 conman(默认)或 ...

Admin

为什么 echo 文本在 systemd 服务中不起作用
systemd-service

为什么 echo 文本在 systemd 服务中不起作用

这个 Bash 脚本单独运行良好: #!/bin/bash OtherIP=172.17.1.2 while [ true ] do echo "cannot connect to $OtherIP" >>pgha.log sleep 2s psql -h $OtherIP -U checker -c '\l' template1 &>/dev/null if [ $? -eq 0 ]; then echo `date` 'Finally,' >>pgha.log ech...

Admin

是否可以通过“After”子句无限期地延迟 systemd 服务?
systemd-service

是否可以通过“After”子句无限期地延迟 systemd 服务?

目前我正在处理这个问题:服务 1 在另一台机器上。服务 2 在这台机器上,但需要服务 1 可用才能运行。服务 3 在这台机器上,但需要服务 2 才能运行。 我想为服务 2 和服务 3 创建两个自动启动的 systemd 服务。 启动服务 2 的脚本首先检查服务 1 是否可用,如果不可用,它将停留在检查/睡眠循环中,直到找到服务 1。 然后我想补充 After=Service_3.service一下Service_2.service 或 Before=Service_2.service​Service_3.service 我将Service_2.service...

Admin

服务文件在 Google CLoud VM 中消失
systemd-service

服务文件在 Google CLoud VM 中消失

我有一个运行 Ubuntu 20.04 的 Google VM 微型实例。上周,我在此 VM 上设置了一个运行 Python 脚本的 systemd 服务。我将服务文件(例如 my_fancy_service.service)创建为 /lib/systemd/system/my_fancy_service.service,并在此服务文件内调用 /usr/bin/python3 /usr/local/bin/my_fancy_service.py。一切按预期正常进行。 但是今天我回到这台服务器,发现服务文件 /lib/systemd/system/my_fan...

Admin

本地构建软件的 Systemd 服务文件位置
systemd-service

本地构建软件的 Systemd 服务文件位置

这可能主要是美学问题,但它一直困扰着我,让我需要付出更多的努力来解决它。 在我的工作环境中,我们非常依赖内部开发的 Linux 工作站和服务器软件,我花了一些时间研究一些构建工具,这些工具提供了一致的构建和安装过程,并减少了每个项目的样板。我尽可能地遵守现有标准。因此,我拥有一个安装系统,当直接从源代码安装时,它会将输出文件放在 /usr/local 中,而当打包(例如构建 RPM)时,它会放在 /usr 中。我们目前的大部分软件都是直接从源代码安装的,不过这种情况将来可能会改变。 因此,直接安装时,可执行文件进入 /usr/local/bin 和 /usr...

Admin

systemd 计时器作业不起作用
systemd-service

systemd 计时器作业不起作用

我希望这个作业每天凌晨 2 点和下午 2 点运行,我在 .timer 文件中有这个 OnCalendar=*-*-* 02:00:00,14:00:00 但是当我使用 systemctl start myjob.timer 时出现此错误: Failed to start myjob.timer: Unit myjob.timer has a bad unit file setting. 我已经用 Google 搜索过了,但不确定到底哪里错了。 ...

Admin