理想情况下,我希望可以在晚上退出登录或Ubuntu登录屏幕显示之前运行该脚本。
以下是设置音量的命令:
`/usr/bin/amixer -c 0 sset Master,0 25% > /dev/null`
感谢您的建议,我们非常乐意尝试其他方法。
`/usr/bin/amixer -c 0 sset Master,0 25% > /dev/null`
/etc/rc.local
中。不过这可能不够及时,因为rc.local会在gdm之后被调用。sudo ln -s /etc/init.d/sound.sh /etc/rc2.d/S20sound
创建了符号链接,这正确吗? - Martin Thoma/etc/systemd/system/alsavolume.service
/usr/bin/amixer sset PCM -- 97%
。记住不要使用引号(否则systemd将把整个内容解释为一个命令)。[Unit]
Description="Set volume level."
After=sound.target
[Service]
Type=simple
ExecStart=/usr/bin/amixer sset PCM -- 97%
[Install]
WantedBy=multi-user.target
启用它(这意味着创建一个符号链接到/etc/systemd/system/multi-user.target.wants
以在启动时运行,但以下命令会为您处理。)
重新加载守护程序
systemctl daemon-reload
启用服务
systemctl enable alsavolume.service
您可以添加参数--now
立即运行该单元。
我相信Ubuntu的启动脚本已经包含了"alsactl restore"。你应该能够运行"alsactl store",并将音量设置为25%,影响所有未来的重启。
Rob,
我正在尝试解决同样的问题。我采用了你上面的“amixer”命令,并进行了大量探索学习运行级别、/etc/rc#.d文件夹和update-rc.d命令。虽然还不完美,但已经有了一些进展,只是在重新启动时它仍不能按照我想要的方式运行。
欢迎提出改进建议。
以下是我的代码...
sudo echo "#!/bin/bash" > /etc/init.d/lowvol.sh
sudo echo "/usr/bin/amixer -c 0 sset Master,0 35% > /dev/null" >> /etc/init.d/lowvol.sh
sudo chmod +x /etc/init.d/lowvol.sh
sudo chown root:root /etc/init.d/lowvol.sh
sudo update-rc.d lowvol.sh stop 20 0 6 .
啊,是的,但它们在关机时是否也包含“alsactl store”呢?
#!/bin/sh
amixer -- sset Master playback -40dB
exit 1
然后在关机时运行此脚本。