![当命令需要实时 midi 和 alsa 线程调度时,systemd 服务中出现错误](https://linux22.com/image/14992/%E5%BD%93%E5%91%BD%E4%BB%A4%E9%9C%80%E8%A6%81%E5%AE%9E%E6%97%B6%20midi%20%E5%92%8C%20alsa%20%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6%E6%97%B6%EF%BC%8Csystemd%20%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF.png)
我有这个服务单元文件:
Type=simple
User=meghdad
ExecStart=/etc/startpianoteq.sh
[Unit]
Description=Pianoteq using a preset
[Install]
WantedBy=multi-user.target
该服务将运行一个名为 Pianoteq 的程序,该程序需要实时访问音频和 midi 线程。但是,运行该服务后,我收到错误消息:“Midi 线程无法获取实时调度,错误 1 - 不允许操作”
该脚本是一个单行脚本,并调用 Pianoteq 可执行文件。
请注意,我可以手动运行该脚本。所以一定是配置问题。
答案1
我通过在 #archlinux 频道上提问找到了答案。
我需要将以下内容添加到服务定义文件的服务部分:
LimitRTPRIO=infinity
LimitMEMLOCK=infinity
LimitRTTIME=infinity