У меня есть некоторые пожелания, чтобы я хотел, чтобы меня вызывали сразу после входа в систему, включая 'startx', и я подумал, что rc.local
кажется им подходящим местом, но проблема в том, что rc.local
запускается от имени пользователя root, и я не хочу этого, очевидно, я могу сделать что-то вроде этого:
su username -c somecommend-here
Но я ищу способ запустить весь rc.local как обычный пользователь, или, возможно, есть лучшее место для поставить мой код?
PS. Я использую Ubuntu-мини-ремикс 1104i386
Спасибо
Самый простой способ запустить команду при входе пользователя в систему - создать файл .desktop
для команды и поместить его в папку ~/.config/autostart
. Как выглядит файл рабочего стола? Вот пример, который получает домашнюю страницу Ask Ubuntu с wget
каждый раз, когда пользователь входит в систему:
[Desktop Entry]
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/
Я не знаю различий между /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
Вам не нужно входить в систему для запуска службы.
Путь linux состоит в добавлении ваших команд в ~/.bashrc
вместо /etc/rc.local
.
У каждого пользователя есть .bashrc
в его домашнем каталоге. Этот файл сценария запускается автоматически сразу после входа пользователя. Он запускается с учетными данными пользователя, поэтому команда su
не требуется.
Мне кажется, что это именно то, что вы ищете.