Страница 1 из 1

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 00:36
_Pokoi_
В общем не нашел я инфы о ток как правильно сделать так чтоб при запуске запускался написанный мой скрипт, гвезде по разному пишут.
если загрузисть в автозапуск это я умею вот, как правильно написать это вопрос для меня .

Согласно данного гайда viewtopic.php?t=3182 я должен вот так написать:

Код: Выделить всё

#!bin/bash
systemctl disable geoclue.service
systemctl disable ModemManager.service
systemctl disable avahi-daemon.service
systemctl disable cups-browsed.service
Но , у меня почему то строчки кода не загораются никаким цветом.


Cогласно данного же гайда viewtopic.php?t=31, я обязан написать вот так:

Код: Выделить всё

mate-terminal -e "command_here"
или
gnome-terminal -e "command_here"
Здесь первые строчки не загораются, что наводит на мысль что не будет работать. Вопрос - как правильно сделать чтоб работало ?

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 03:31
madesta
Насколько понимаю, вы свой скрипт помещаете в автозапуск при входе в систему. Но данные команды для своего выполнения требуют прав суперпользователя.
Откройте терминал и по одной вводите команды (можно и все сразу, но так: команда && команда && команда && команда):
sudo systemctl disable geoclue.service
sudo systemctl disable ModemManager.service
sudo systemctl disable avahi-daemon.service
sudo systemctl disable cups-browsed.service

Увидите какие действия будут выполняться. Сделать придётся только 1 раз и необходимости в создании скрипта при старте системы не будет.

Если вам нужно сделать набор команд, которые будут выполняться при вашем входе в систему именно в терминале (обычно нужно чтобы видеть процесс выполнения), то:
1) создайте скрипт с командами;
2) на рабочем столе через ПКM создайте кнопку запуска (Cinnamon) или значок запуска (xfce), [как называется в MATE не знаю], укажите название, полный путь к скрипту с командами, назначьте значок и установите галочку в поле "Запускать в терминале";
3) по умолчанию система будет предлагать создать это и в категории "Прочее". Чтобы не плодить на рабочем столе лишние значки я обычно отвечаю "Нет" и потом просто перемещаю созданное в свой домашний каталог ~/.local/share/applications. Созданное представляет из себя файл .desktop, который можно открывать и редактировать в текстовом редакторе;
Для помещения его в другую категорию в этот файл добавить строку Categories= и указать конкретную категорию (можно и несколько через ;), например, Мультимедиа - AudioVideo, Система - System ... Примеры как указываются категории смотрите в аналогичных файлах в /usr/share/applications
4) в настройке автозагрузки для выполнения созданного вами скрипта впишите команду gtk-launch имя (имя то что вы указали при создании). Не забудьте, что если имя у вас содержит пробелы, то его нужно брать в кавычки, например, gtk-launch "имя";
Если не успеваете рассмотреть что делается по причине того, что скрипт отработает раньше, чем прорисуются все элемента рабочего стола, то в автозагрузке используйте отложенный запуск sh -c "sleep время_в_секундах && команда", например, sh -c "sleep 120 && dropbox start -i".
5) просто запустить и посмотреть как отрабатывает созданный .desktop можно по значку в Меню.

Пример созданного файла .desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Upload
Comment=
Exec=/home/minter/Tools/scripts/modules/upload.sh
Icon=emblem-upload-teal
Path=
Terminal=true
StartupNotify=false

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 06:59
symon2014
_Pokoi_ писал(а):
02 июн 2023, 00:36
Здесь первые строчки не загораются, что наводит на мысль что не будет работать.
Здесь наводятся другие мысли. найди отличия в командах сообщения в теме и в командах на скрине.

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 09:14
slant
_Pokoi_,
Команды disable и enable в systemd выполняются разово - и управляют состоянием автозапуска сервиса. Если было введено disable - сервис автоматически стартовать больше не будет, и с enable - наоборот. Для непосредственного запуска и остановки - существуют start и stop. Это во первых.

Во вторых - sudo не будет отрабатываться в пользовательском скрипте. Прав нету, пароль будет просить и зависнет. Хотя можно обойти через sudoers но там все своеобразно. :)
В третьих - если скрипт сделать системным (с правами root, системный автостарт) - у него не будет доступа доступа к дисплею иксов пользователя, т.е. терминал DE (как и любую GUI программу) из него запускать не получится.

Чую очередную попытку операции по удалению гланд через это самое... Может поделитесь, зачем вам вообще понадобилось systemd через автозапуск дергать? Возможно все куда проще решается?

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 09:48
symon2014
slant писал(а):
02 июн 2023, 09:14
Может поделитесь, зачем вам вообще понадобилось
Вангую , задачка из учебника )

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 12:53
Sharov
_Pokoi_ писал(а):
02 июн 2023, 00:36
gnome-terminal -e "command_here"
gnome-terminal --execute "команда"

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 13:00
symon2014
Sharov, Слово --edit тоже с этой буквы.

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 13:52
madesta
Sharov писал(а):
02 июн 2023, 12:53
gnome-terminal
mate-terminal, gnome-terminal, насколько понимаю, для разных DE. А автор создал тему в разделе форума про xfce, в которой применяется xfce4-terminal. Возникает вопрос: для какого же DE нужно?

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 15:31
_Pokoi_
madesta писал(а):
02 июн 2023, 13:52
Sharov писал(а):
02 июн 2023, 12:53
gnome-terminal
mate-terminal, gnome-terminal, насколько понимаю, для разных DE. А автор создал тему в разделе форума про xfce, в которой применяется xfce4-terminal. Возникает вопрос: для какого же DE нужно?
xfce4

Запуск скрипта, выполняющего команды в терминале

Добавлено: 02 июн 2023, 22:35
Sharov
_Pokoi_ писал(а):
02 июн 2023, 15:31
xfce4
https://manpages.org/xfce4-terminal#:~:text=tab options

Запуск скрипта, выполняющего команды в терминале

Добавлено: 15 авг 2023, 21:03
Dja
madesta писал(а):
02 июн 2023, 03:31
Насколько понимаю, вы свой скрипт помещаете в автозапуск при входе в систему. Но данные команды для своего выполнения требуют прав суперпользователя.
Откройте терминал и по одной вводите команды (можно и все сразу, но так: команда && команда && команда && команда):
sudo systemctl disable geoclue.service
sudo systemctl disable ModemManager.service
sudo systemctl disable avahi-daemon.service
sudo systemctl disable cups-browsed.service
Если всё же отталкиваться от скрипта, то можно и его. Только не в автозапуск, а самому после входа. Повесить на него хоткей и жмакнуть. А так slant прав. Смысла в этих плясках не видать.