Fluidsynth 在启动时自动启动;登录冻结 - 已连接?如何解决?

Fluidsynth 在启动时自动启动;登录冻结 - 已连接?如何解决?

自从从 Kubuntu 20.04 切换到 Ubuntu Studio 22.04(两者都使用 KDE Plasma)以来,我遇到了一系列奇怪的问题。我想知道它们是否有关联,但我的主要目标是找到问题 #1 的解决方案。其他任何事情都只是锦上添花。

我最初将其作为有关问题#1的一个更简单的问题发布,以及我最初认为的答案和解决方案(仍然作为我的答案发布在下面......不确定是否应该删除它)。

问题

我在 Ubuntu Studio 安装中发生了两件奇怪的事情,但并非总是如此:

#1- fluidsynth 工艺有时在启动时自动启动。这真的不应该发生。Fluidsynth 是一个合成器,是 QSynth 和 fluidsynth.dssi 的后端。这个发行版包含很多合成器,没有理由让这个特定的合成器自动启动。此外,当 fluidsynth 以这种方式启动时,我无法在系统监视器中结束该进程 - 我必须执行老套的“killall -9 fluidsynth”。

有了下面我最初发布的答案,我删除了覆盖文件并将 WantedBy= 变量恢复为 multi-user.target。覆盖的存在/不存在以及我将该变量设置为什么似乎都没有区别。两者都不会导致行为总是发生或从不发生。

#2-有时,在启动时,光标在登录框中闪烁几次,然后冻结,我无法登录、关闭或重新启动。我必须转到 tty 并重新启动 sddm.service,然后一切正常。

可能的连接

发生的事情似乎没有太大的一致性。然而,上述两种现象似乎是有联系的。例如,刚才,在启动时,fluidsynth 自动启动。它连续两次这样做。然后,在第三次启动时,我遇到了登录冻结问题。我重新启动了 sddm.service,登录,fluidsynth没有自动启动。然后我再次重新启动,登录工作正常,fluidsynth 没有启动。一切似乎都正常。

另一个可能的联系是,这种情况更有可能发生在我在同一台笔记本电脑上启动 Kubuntu、关闭它,然后启动 Ubuntu Studio 之后。在最近一轮自动启动之前,我刚刚启动了 Kubuntu。在 Kubuntu 中,fluidsynth 永远不会自动启动。在某些系统更新(而不是软件更新)之后,问题似乎也更有可能发生。

启动程序

systemd 中有一个 fluidsynth.service。但是,当我在终端中列出所有 systemd 服务(无论是否正在运行,包括那些应该在启动时启动的服务)时,fluidsynth 并没有出现在列表中。它也没有出现在 Ubuntu Studio 的启动程序设置中。

关于我的系统的其他可能相关信息

我的发行版混合使用了 ALSA、Pulseaudio 和 Jack2 来处理声音。我还可以看到系统监视器中有一些 Pipewire 进程,但“面向客户”的进程都没有使用 Pipewire(也就是说,我根本不会、也不能与它交互)。

我找到的可能有助于诊断的信息

为了尝试弄清这个问题(并不是真正知道我在做什么,只是按照网络上的提示),我发现 fluidsynth 进程的 UID 是 1278,因此,在终端中,尝试了以下操作(以图片形式发布,因为我不知道如何粘贴嵌套)...

fluidsynth UID 状态

(图表继续,但我只复制到这里以节省空间。Fludisynth 不连接到任何剩余的条目。请注意,在上面,fluidsynth 正在加载默认的 GM 音色。Fluidsynth 需要先加载音色,然后才能发出任何声音。在那个 sf3 文件夹中,有几个音色文件,但由于某种原因,这个文件正在加载。

在该输出树的末尾,内容如下……)

fluidsynth UID 状态,ps

我还检查了 fluidsynth 的系统日志并得到了这个……

系统日志

那么,有了这些信息,有人能帮助我诊断/解决我的问题,或者至少给我指明正确的方向吗?

答案1

这个答案是一篇较早的帖子,我以为它解决了我的问题,但后来发现它并没有解决。我暂时把它留在这里,希望它能有所帮助。目前,我刚刚删除了 Fluidsynth。如果在下一个 Ubuntu Studio LTS 发布时我遇到同样的问题,我会尝试任何建议的解决方案。

我找到了我最初问题的答案以及解决方案(部分感谢评论中的 Muru 的帮助)。

Fluidsynth 在启动时自动启动的原因是,与我使用带有 Ubuntu Studio 包装器的 Kubuntu 20.04 安装不同,这个 Ubuntu Studio 22.04 安装由于某种原因将 Fluidsynth 设置为这样做。

在文件中,/usr/lib/systemd/user/fluidsynth.service, 在下面[安装], 这想要的人=变量设置为默认目标,这将在启动时触发启动。另一方面,Kubuntu 20.04 将其设置为多用户目标并且该过程没有自动启动。

我最初只是在新安装中更改了这个变量,以匹配它在 Kubuntu 中的设置方式,这做过可以,但 Muru 建议将来的更新可以将其恢复为默认设置。因此,我做了以下事情:

在终端...

systemctl edit --user fluidsynth.service

这将在以下位置创建新文件夹:/home/用户/.config/systemd/用户称为fluidsynth.service.d,以及此文件夹中的新覆盖文件,并在终端中打开后者进行编辑。在行下,“此处与下方评论之间的内容将成为新内容”我补充道……

[Install] 
WantedBy= 
WantedBy=multi-user.target

我的文本编辑器(已在终端中打开)是 Nano,因此在添加以上三行后,我输入 Ctrl+O 保存更改,接受提供给我的文件名,然后使用 Ctrl+X 退出。

现在,我的 /home 文件夹中新创建的覆盖文件在根文件夹中发挥了某种神奇的作用,阻止 systemd 在启动时自动启动 fluidsynth。

答案2

我的 FluidSynth 在启动过程中处于某种奇怪的状态。启动后不久,它以某种方式与 PulseAudio 竞争,两者都占用了大约 12% 的 CPU 时间(根据程序顶部),并迅速而轻松地耗尽了我的电池。FluidSynth 服务在 systemctl 中不可见,所以我认为这是一个错误。

我通过重命名并重新启动摆脱了 Alsa 插件 FluidSynth:

sudo mv /usr/lib/systemd/user/fluidsynth.service /usr/lib/systemd/user/fluidsynth.service_nevermore

FluidSynth 程序仍然可以作为独立应用程序运行 - 这是我最需要的。

我知道这是一份肮脏的工作。:-)

相关内容