Systemd 服务无法写入文件,但仅限于冷启动时

Systemd 服务无法写入文件,但仅限于冷启动时

在 Manjaro Linux(内核 5.5)上,我创建了一个用于超频 GPU 的脚本,以及一个在启动时启动它的 systemd 服务:

/usr/local/bin/amdoverclock

#!/bin/bash
echo 'manual' > power_dpm_force_performance_level
echo 's 1 1925' > pp_od_clk_voltage
echo 'm 1 900' > pp_od_clk_voltage
echo 'vc 0 800 750' > pp_od_clk_voltage
echo 'vc 1 1363 918' > pp_od_clk_voltage
echo 'vc 2 1925 1085' > pp_od_clk_voltage
echo 'c' > pp_od_clk_voltage

/etc/systemd/system/amdoverclock.service

[Unit]
Description=Tweaks GPU core and memory clocks

[Service]
Type=oneshot
WorkingDirectory=/absolute/path/to/powerstates/files
ExecStart=/usr/local/bin/amdoverclock

[Install]
WantedBy=multi-user.target

启用后,服务会失败,但仅在启动时失败,并且每个echo脚本行上都显示“PERMISSION DENIED”。如果我重新启动系统,一切都会顺利运行。脚本的 Chmod 为 755,服务单元的 Chmod 为 644。删除 WorkingDirectory 并在脚本中放入绝对路径不会改变任何事情。

我怎样才能让这个东西工作呢?

答案1

正如我发现的这里问题已解决,只需添加After=multi-user.target到“单元”部分,然后更改WantedBy=multi-user.targetWantedBy=graphical.target“安装”部分即可。

相关内容