Де сценарії запуску Unity Desktop?


11

Я хочу запустити сценарій, як тільки моя автентифікація lightdm завершиться, і моя Unity почне завантажуватися. і я хочу запустити свої сценарії як користувач root.

де розміщені сценарії запуску в Unity?


Я хочу запустити сценарій після завантаження мого X.
Шнд


@Shnd X насправді запускається перед lightdm, тому що lightdm також працює в X. Отже, якщо ви хочете запустити щось як ваш користувач, ви, ймовірно, хочете це "після успішної автентифікації lightdm" або іншими словами ", коли робочий стіл запускається". Можливо також запустити сценарій, коли комп'ютер просто завантажується, незалежно від того, у вас є користувач, який увійшов або ні (саме так починається X), ніж це зовсім інше питання. Якщо ви хочете запустити щось як користувач, ви, мабуть, цього хочете, і відповідь залежить від вашої системи init.
erikbwork

Відповіді:


5

Спочатку поставте свій сценарій /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 працює при запуску.


1
про запуск судо
Pandya

Завдяки цьому працює. Але з початком роботи ви можете зробити те ж саме, можливо, трохи простіше (подивіться на мою відповідь).
TuKsn

Це було б ідеально за посиланням на специфікацію
erikbwork

Я не думаю, що .desktop файл повинен бути позначений працездатним.
Джуліан

4

Інша можливість:

Створіть файл у $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без пароля:

Як запустити програму за допомогою sudo без пароля?

Як запускати конкретні команди sudo без пароля?


"$ HOME / .config / upstart" на моїй машині немає такого каталогу.
Каламалка Малюк

1
@KalamalkaKid Яку версію Ubuntu ви використовуєте? Каталог на початку повинен бути в цьому місці /home/yourusername/.config/upstart/. Відкрийте свого домашнього директора в nautilus, натисніть Ctrl + H, і ви побачите каталог .config
TuKsn

2

Щоб виконати команду як корінь , після входу в систему , є ще один простий трюк:

Це виконує два кроки:

  • створити тригер- файл при вході в систему
  • створити cronjob, запустити root (встановити /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
    

Тепер визначена команда виконується одноразово протягом однієї хвилини після входу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.