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

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Закрыто
no avatar

Автор темы
_Pokoi_
Сообщения: 119
Зарегистрирован: 18 янв 2022, 19:25
Решено: 6
Благодарил (а): 9 раз
Контактная информация:

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

#1

02 июн 2023, 00:36

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

Согласно данного гайда 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"
Здесь первые строчки не загораются, что наводит на мысль что не будет работать. Вопрос - как правильно сделать чтоб работало ?
Вложения
Снимок экрана_2023-06-02_02-28-22.png
2.png

Аватара пользователя

madesta
Сообщения: 2020
Зарегистрирован: 11 июн 2017, 21:47
Решено: 30
Откуда: BY
Благодарил (а): 79 раз
Поблагодарили: 434 раза
Контактная информация:

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

#2

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

Увидите какие действия будут выполняться. Сделать придётся только 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

Аватара пользователя

symon2014
Сообщения: 5936
Зарегистрирован: 16 дек 2017, 21:59
Решено: 37
Откуда: Феодосия
Благодарил (а): 32 раза
Поблагодарили: 750 раз
Контактная информация:

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

#3

02 июн 2023, 06:59

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

Аватара пользователя

slant
Сообщения: 4511
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1995 раз
Контактная информация:

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

#4

02 июн 2023, 09:14

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

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

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

Аватара пользователя

symon2014
Сообщения: 5936
Зарегистрирован: 16 дек 2017, 21:59
Решено: 37
Откуда: Феодосия
Благодарил (а): 32 раза
Поблагодарили: 750 раз
Контактная информация:

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

#5

02 июн 2023, 09:48

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

Аватара пользователя

Sharov
Сообщения: 151
Зарегистрирован: 10 фев 2022, 23:53
Благодарил (а): 84 раза
Поблагодарили: 22 раза
Контактная информация:

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

#6

02 июн 2023, 12:53

_Pokoi_ писал(а):
02 июн 2023, 00:36
gnome-terminal -e "command_here"
gnome-terminal --execute "команда"
i3-3210 / 10GB / VGA Intel HD 2500 / SSD 240GB / Kernel 6.6.12

Аватара пользователя

symon2014
Сообщения: 5936
Зарегистрирован: 16 дек 2017, 21:59
Решено: 37
Откуда: Феодосия
Благодарил (а): 32 раза
Поблагодарили: 750 раз
Контактная информация:

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

#7

02 июн 2023, 13:00

Sharov, Слово --edit тоже с этой буквы.

Аватара пользователя

madesta
Сообщения: 2020
Зарегистрирован: 11 июн 2017, 21:47
Решено: 30
Откуда: BY
Благодарил (а): 79 раз
Поблагодарили: 434 раза
Контактная информация:

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

#8

02 июн 2023, 13:52

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

no avatar

Автор темы
_Pokoi_
Сообщения: 119
Зарегистрирован: 18 янв 2022, 19:25
Решено: 6
Благодарил (а): 9 раз
Контактная информация:

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

#9

02 июн 2023, 15:31

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

Аватара пользователя

Sharov
Сообщения: 151
Зарегистрирован: 10 фев 2022, 23:53
Благодарил (а): 84 раза
Поблагодарили: 22 раза
Контактная информация:

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

#10

02 июн 2023, 22:35

_Pokoi_ писал(а):
02 июн 2023, 15:31
xfce4
https://manpages.org/xfce4-terminal#:~:text=tab options
i3-3210 / 10GB / VGA Intel HD 2500 / SSD 240GB / Kernel 6.6.12

Аватара пользователя

Dja
Сообщения: 6884
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1313 раз
Поблагодарили: 724 раза
Контактная информация:

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

#11

15 авг 2023, 21:03

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 прав. Смысла в этих плясках не видать.

Закрыто

Вернуться в «Xfce»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость