Как добавить скрипт для запуска приложений из командной строки? [Дубликат]

20

У меня есть сценарий оболочки. Я хочу, чтобы мой скрипт запускался автоматически во время запуска. Я знаю, как это сделать из графического интерфейса. Но я хотел сделать это с терминала. Как я могу это сделать?

В ходе первичного исследования я обнаружил, что файл нужно перенести в каталог /etc/int.d/ . Но для этой операции требуется разрешение sudo. Я хотел сделать это без прав пользователя.

Я также обнаружил, что есть файлы под ~/.config/autostart/ , которые имеют некоторые настройки в отношении приложений запуска. Но я не знаю, как их редактировать, чтобы добиться этого.

Может ли кто-нибудь сказать мне точную процедуру для этого?

    
задан Anonymous Platypus 18.03.2015 в 09:16
источник

2 ответа

17

Как настроить пусковую установку запуска из командной строки

Как вы говорите в своем вопросе, команды могут запускаться при входе в систему, помещая пусковую установку в ~/.config/autostart . Поскольку пусковая установка используется только для запуска сценария, вам нужны только ключевые слова для ввода в рабочий стол в созданном% Файлы co_de%: ключевые слова / строки, которые вам нужны по крайней мере:

[Desktop Entry]
Name=name
Exec=command
Type=Application

Строка (необязательная) .desktop будет добавлена автоматически, если вы включите / отключите функцию автозапуска пусковой установки (по умолчанию она установлена на X-GNOME-Autostart-enabled=true )

Подробнее о необходимых полях, вы можете найти здесь .

Пример сценария

Чтобы создать такую пусковую установку из командной строки, вам понадобится небольшой скрипт, который будет принимать имя стартера и команду для запуска в качестве аргумента. Пример такого сценария ниже.

Если я запустил его с помощью команды:

python3 '/path/to/script' 'Test' 'gedit'

Он создает пусковую установку запуска, при запуске X-GNOME-Autostart-enabled=true .
Пусковая установка также видна в Dash > Запуск приложений:

Скрипт

#!/usr/bin/env python3 import os import sys home = os.environ["HOME"] name = sys.argv[1]; command = sys.argv[2] launcher = ["[Desktop Entry]", "Name=", "Exec=", "Type=Application", "X-GNOME-Autostart-enabled=true"] dr = home+"/.config/autostart/" if not os.path.exists(dr): os.makedirs(dr) file = dr+name.lower()+".desktop" if not os.path.exists(file): with open(file, "wt") as out: for l in launcher: l = l+name if l == "Name=" else l l = l+command if l == "Exec=" else l out.write(l+"\n") else: print("file exists, choose another name")

Вставьте его в пустой файл, сохраните его как gedit , запустите его командой:

python3 /path/to/set_startupscript.py '<name>' '<command>'

Что он делает

  • Он создает базовую пусковую установку (вам не нужно больше, запуск скрипта) в set_startupscript.py , принимая имя и команду в качестве аргументов.
  • Если в ~/.config/autostart уже существует пусковая установка с именем, она печатает сообщение:

    file exists, choose another name
    
ответ дан Jacob Vlijm 18.03.2015 в 09:44
источник
6

Я нашел ответ

cd до ~/.config/autostart/ . Если у вас нет папки с именем autostart , создайте ее с помощью этого имени, используя автозапуск mkdir.

Теперь добавьте следующий файл с именем yourScript.sh.desktop

[Desktop Entry]
Type=Application
Exec="/Your/location/to/theScript/yourScript.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=AnyNameYouWish
Name=AnyNameYouWish
Comment[en_IN]=AnyComment
Comment=AnyComment

Готово!

    
ответ дан Anonymous Platypus 18.03.2015 в 09:36