Я хочу запустить скрипт, как только моя lightdm аутентификация успешно выполняется, и моя Единица начинает загружаться. и я хочу запустить свои скрипты как пользователь root.
где сценарии запуска расположены в Единице?
Сначала поместите свой сценарий в /usr/bin
и дайте, выполняют разрешение.
Теперь создают .desktop файл в /home/[user-name]/.config/autostart/
, которые выполняют Ваш сценарий, который работает при запуске.
Пример:-Позволил Вашему имени файла сценария, "пример", или "example.sh"
Создают .desktop файл с gedit со следующими строками и сохраняют как filename.desktop в /home/[user-name]/.config/autostart/
[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script
Здесь Exec=sudo example
или Exec=sudo example.sh
выполнения Ваш сценарий , поскольку корень от /usr/bin
Дает, выполняют разрешение в .desktop файл.
Теперь, Сценарий работает на запуске.
Другая возможность:
Создают файл в $HOME/.config/upstart/my-upstart-script.conf
start on desktop-start
stop on desktop-end
script
sudo fdisk -l > /home/[user-name]/upstart-test.txt
end script
Более подробная информация к Выскочка :
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
Infos для выполнения sudo
без пароля:
Для выполнения команды как корня , после вход в систему, существует другой простой прием:
Это делает два шага:
/etc/crontab
), для выполнения крошечного сценария (выполняющий команду) , если и [только 1 113], если триггерный файл существует. Так как триггерный файл удален тем же сценарием, Ваша команда только работает однажды. последовательность тогда:
USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore
установка
два маленьких сценария:
Один для создания триггерного файла на входе в систему:
#!/bin/sh
touch $HOME/.trigger
и два выполняет команду:
#!/bin/bash
FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root
if [ -f $FILE ]; then
<your command here, run by root>
rm -f $FILE
fi
create_trigger.sh
и run_command.sh
. Добавляют следующую команду к Вашим Приложениям Запуска (Тире>, Приложения Запуска> Добавляют)
/path/to/create_trigger.sh
, Добавляет следующая строка к /etc/crontab
файл (sudo nano /etc/crontab
):
* * * * * root /path/to/run_command.sh
Теперь определенная команда выполняет единственное время в течение одной минуты от входа в систему.