如何以普通用户身份运行rc.local?


8

我有一些建议,我希望在登录后立即被调用,包括'startx',我认为rc.local这对他们来说似乎是个好地方,但问题是它rc.local是以root身份运行的,我不希望这样做,显然我可以做到像这样的东西:

su username -c somecommend-here

但是我正在寻找一种以普通用户身份运行整个'rc.local'的方法,或者也许有一个更好的放置代码的地方?

PS。我正在使用Ubuntu-mini-remix 1104i386

谢谢


AFAIK rc.local在引导序列结束时与登录并行执行。我的意思是,即使您不登录,它也会被执行,但是您可以登录ant,它可能正在等待执行。
哈维尔·里维拉

@JavierRivera那么解决方案是什么?
omeid 2011年

Answers:


6

用户登录时启动命令的最简单方法是为命令创建.desktop文件并将其粘贴在~/.config/autostart文件夹中。桌面文件是什么样的?这是一个示例,该示例wget在用户每次登录时都检索Ask Ubuntu主页:

[Desktop Entry] 
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/

图形登录启动startx(按照OP的要求)似乎不是一个好主意。
enzotib

@enzotib:没有提及图形登录。
内森·奥斯曼

也许我误解了这个问题,我相信用户将开始startxrc.local。抱歉
enzotib 2011年

1

我不知道/etc/rc.local和crontab之间的区别,但是我通常会创建一个服务帐户并添加适当的作业。例如:sudo crontab -u p4padmin -e

@reboot ~/bin/p4p -d -r ~/var/p4p/cache/foo -p 2020 -t depot:2020 -L ~/var/p4p/log/foo.log

您无需登录即可执行服务。


0

用Linux的方法是你的命令追加到~/.bashrc代替/etc/rc.local

每个用户.bashrc的主目录中都有一个。该脚本文件在用户登录后自动运行。它使用用户的凭据运行,因此su不需要命令。

在我看来,这正是您想要的。


这不太正确,例如,.bashrc当用户使用normal登录时未读到lightdm

我得出的结论太快了,因为他提到了“手动” startx命令,因此用户使用命令行登录而不是显示管理器....我的意思很糟:-)
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.