Я хочу запустити сценарій, як тільки моя автентифікація lightdm завершиться, і моя Unity почне завантажуватися. і я хочу запустити свої сценарії як користувач root.
де розміщені сценарії запуску в Unity?
Я хочу запустити сценарій, як тільки моя автентифікація lightdm завершиться, і моя Unity почне завантажуватися. і я хочу запустити свої сценарії як користувач root.
де розміщені сценарії запуску в Unity?
Відповіді:
Спочатку поставте свій сценарій /usr/bin
і дайте дозвіл на виконання.
Тепер створіть .desktop файл, у /home/[user-name]/.config/autostart/
якому запустіть ваш скрипт, який працює при запуску.
Приклад: - Нехай ваше ім'я файлу скрипту буде "example" або "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.
Тепер Script працює при запуску.
Інша можливість:
Створіть файл у $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
Більш детальна інформація до Upstart :
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sesions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
Інформація для запуску sudo
без пароля:
/home/yourusername/.config/upstart/
. Відкрийте свого домашнього директора в nautilus, натисніть Ctrl + H, і ви побачите каталог .config
Щоб виконати команду як корінь , після входу в систему , є ще один простий трюк:
Це виконує два кроки:
/etc/crontab
), запустити крихітний скрипт (запустивши вашу команду), якщо і лише за наявності файлу тригера. Оскільки файл тригера видаляється тим самим сценарієм, ваша команда виконується лише один раз.Наступна послідовність:
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
Тепер визначена команда виконується одноразово протягом однієї хвилини після входу.