页次: 1
用Linux的时候习惯关闭独显(因为坑爹的驱动问题)
原本用ubuntu的时候是在rc.local里面加上这句
echo "OFF" > /sys/kernel/debug/vgaswitcheroo/switch
就可以开机自动关闭独显了。
现在换了Arch Linux,也想要做成开机自动关闭独显。
于是在/etc/systemd/system/下配置了closeATI.service文件,内容如下:
[Unit]
Description=CloseATI
[Service]
ExecStart=/usr/bin/echo "OFF" > /sys/kernel/debug/vgaswitcheroo/switch
[Install]
WantedBy=multi-user.target
然后systemctl enable closeATI
结果重新开机发现并没有自动关闭独显,用journalctl -u closeATI查看的时候发现closeATI运行失败。
然后我又在/usr/local/bin下创建了一个权限755的文件closeATI,内容为
/usr/bin/echo "OFF" > /sys/kernel/debug/vgaswitcheroo/switch
然后把/etc/systemd/system/closeATI.service中的ExecStart=设为/usr/local/bin/closeATI,再次systemctl enable closeATI,重启以后发现仍然没有关闭。
求问各位大神,这应该是什么原因?难道是因为Systemd执行时不支持输出重定向?
离线
systemd工作机制还是弄不清楚。不过关闭独显不需要这么做,有更简单的方法。可以看wiki
或者:http://bbs.archlinuxcn.org/viewtopic.php?id=1819
离线
试试 rc-local 那个 service。wiki 上有。
或者试试这样子:
[Unit]
Description=SLiM Simple Login Manager
After=systemd-user-sessions.service
[Service]
ExecStart=/bin/sh -c "exec /usr/bin/slim -nodaemon >> /dev/shm/slim.log 2>&1"
[Install]
WantedBy=multi-user.target
离线
systemd工作机制还是弄不清楚。不过关闭独显不需要这么做,有更简单的方法。可以看wiki
或者:http://bbs.archlinuxcn.org/viewtopic.php?id=1819
谢谢,我已經用了3楼的方法,解决了问题,但是还是很好奇为什么我的会出错囧
离线
试试 rc-local 那个 service。wiki 上有。
或者试试这样子:[Unit] Description=SLiM Simple Login Manager After=systemd-user-sessions.service [Service] ExecStart=/bin/sh -c "exec /usr/bin/slim -nodaemon >> /dev/shm/slim.log 2>&1" [Install] WantedBy=multi-user.target
3Q,现在用2楼说的那个帖子里面的一个方法解决了,不过还是很好奇我的代码哪里错了囧
离线
ExecStart 参数只能有一个,多个参数要用 -c 包起来。
离线
man systemd.service
Example:
Environment="ONE=one" 'TWO=two two'
ExecStart=/bin/echo $ONE $TWO ${TWO}
This will execute /bin/echo with four arguments: "one", "two",
"two", and "two two".
离线
输出重定向的问题吧?那里应该不是 shell 格式的。
Site: CVHC.CC Twitter: @cuihaoleo Org: LUG@USTC
AD: ~欢迎参与志愿计算~
离线
输出重定向的问题吧?那里应该不是 shell 格式的。
至少现在的版本是支持重定向的。他没有给出错误消息,所以也没办法猜测到底是怎么回事了。
离线
页次: 1