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

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

我有一些命令希望在登录后立即调用,包括“startx”,我认为这rc.local对它们来说似乎是一个不错的地方,但问题是它rc.local以 root 身份运行,而我不想这样,显然我可以做这样的事情:

su username -c somecommend-here

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

PS. 我使用的是 Ubuntu-mini-remix 1104i386

谢谢

答案1

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

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

答案2

我不知道 /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

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

答案3

Linux 的方法是将命令附加到~/.bashrc而不是/etc/rc.local

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

在我看来这正是您所寻找的。

相关内容