您尚未登录。

#1 2013-06-07 01:01:00

sandtears
会员
注册时间: 2013-04-12
帖子: 3

Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

用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执行时不支持输出重定向?

离线

#2 2013-06-07 12:14:32

jarryson
会员
注册时间: 2012-08-22
帖子: 15

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

systemd工作机制还是弄不清楚。不过关闭独显不需要这么做,有更简单的方法。可以看wiki

或者:http://bbs.archlinuxcn.org/viewtopic.php?id=1819

离线

#3 2013-06-07 18:43:40

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,478
个人网站

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

试试 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

离线

#4 2013-06-07 20:00:37

sandtears
会员
注册时间: 2013-04-12
帖子: 3

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

jarryson 说:

systemd工作机制还是弄不清楚。不过关闭独显不需要这么做,有更简单的方法。可以看wiki

或者:http://bbs.archlinuxcn.org/viewtopic.php?id=1819


谢谢,我已經用了3楼的方法,解决了问题,但是还是很好奇为什么我的会出错囧

离线

#5 2013-06-07 20:02:15

sandtears
会员
注册时间: 2013-04-12
帖子: 3

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

百合仙子 说:

试试 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楼说的那个帖子里面的一个方法解决了,不过还是很好奇我的代码哪里错了囧

离线

#6 2013-06-09 12:26:02

fengchao
会员
注册时间: 2012-02-21
帖子: 116

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

ExecStart 参数只能有一个,多个参数要用 -c 包起来。

离线

#7 2014-10-18 01:40:53

hepha
会员
注册时间: 2013-08-28
帖子: 8

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

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".

离线

#8 2014-10-18 09:03:50

cuihao
所在地: USTC, Hefei
注册时间: 2011-08-19
帖子: 1,222
个人网站

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

输出重定向的问题吧?那里应该不是 shell 格式的。


Site: CVHC.CC   Twitter: @cuihaoleo   Org: LUG@USTC
AD:  ~欢迎参与志愿计算~

离线

#9 2014-10-18 11:56:36

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,478
个人网站

Re: Archlinux下systemd添加的脚本不能自启动,求大神解惑。。

cuihao 说:

输出重定向的问题吧?那里应该不是 shell 格式的。

至少现在的版本是支持重定向的。他没有给出错误消息,所以也没办法猜测到底是怎么回事了。

离线

页脚