我有一些命令希望在登录后立即调用,包括“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
不需要命令。
在我看来这正是您所寻找的。