Уважаемые! Есть написанная команды в терминале для обновления DLNA сервера. Исполняется прекрасно, но хотелось бы исполнять ее без написания каждый раз. Нажать на значек (иконку) или или еще каким макаром. Желательно под рутом (что бы не вводить пароль). Чего то я не догоняю , не найду в инете :(. Спасибо.
Создать скрипт
#!/bin/sh
kdesudo команда
Создать ярлык для скрипта
[Desktop Entry]
Categories=Qt;KDE;Settings;
Comment[ru]=
Comment=
Exec=bash /путь к скрипту/скрипт.sh
GenericName[ru]=
GenericName=
Icon=configure-debian
MimeType=
Name[ru]=DLNA
Name=DLNA
OnlyShowIn=KDE;
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-StartupNotify=true
X-KDE-SubstituteUID=false
X-KDE-Username=
танцы с бубном ! Все работает, только там 4 команды вписаны и в терминале требовался 1 раз ввести пароль, а через скрипт 4 раза пароль запрашивает. Решаемо?
В линуксе всё решаемо, была бы голова и желание. Вы хотя бы команду покажите, а то не известно в каком месте и для чего 4 раза спрашивает пароль.
кстати, если 4 команды друг за другом следуют, то используйте такой формат: команда && команда && и т.д.
Я так писал через &&.
#!/bin/sh
kdesudo service minidlna stop && kdesudo rm -rf /var/cache/minidlna/* && kdesudo minidlnad && kdesudo service minidlna restart
4 раза запрос пароля идет
зачем 4 раза kdesudo.
#!/bin/sh
kdesudo service minidlna stop && rm -rf /var/cache/minidlna/* && minidlnad && service minidlna restart
тогда команды не выполняются, только первая. в терминале сохраняется пароль на некоторое время а тут нет
ну тогда так попробуйте:
ярлык
[Desktop Entry]
Comment[ru]=
Comment=
Exec=konsole -e ~/minidlna
скрипт
#!/bin/sh
[ $USER != 'root' ] && exec sudo "$0"
service minidlna stop && rm -rf /var/cache/minidlna/* && minidlnad && service minidlna restart
молчит совсем. ни каких телодвижений :(
придется дальше терминалом гонять
как это молчит? себе поставил ради интереса. всё отлично работает.
привожу полный ман.
создайте текстовый файл с именем (DLNA) и расширением desktop и таким содержанием:
[Desktop Entry]
Comment[ru]=
Comment=
Exec=konsole -e ~/minidlna (здесь путь где лежит скрипт, у меня в хомяке, отсюда и вот это ~/ )
GenericName[ru]=
GenericName=
Icon=любой значек из набора системных значков, к примеру settings
MimeType=
Name[ru]=
Name=
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
затем создаем скрипт, такого содержания:
#!/bin/sh
[ $USER != 'root' ] && exec sudo "$0"
service minidlna stop && rm -rf /var/cache/minidlna/* && minidlnad && service minidlna restart
запускается консолька с приглашением ввести пароль, после ввода, команды отрабатываются и консоль сама закрывается.
странно. буду шаманить
Да срабатывает!!! Спасибо, уже легче. Ошибка в написании была :(
Тут нужно немного не так:
#!/bin/bash
kdesudo /bin/bash -c 'service minidlna stop && rm -rf /var/cache/minidlna/* && minidlnad && service minidlna start'
и так срабатывает, ка и в предыдущей версии. Спасибо
Терминал ведет свою историю, поэтому ничего заново набирать не надо, просто введенные ранее команды перебираются стрелками на клавиатуре. А пароль по-любому вводить приходится каждый раз.
гмм, а зачем, если можно настроить sudo для принятия этой команды без пароля?
причем даже с иконкой. :-)
чтобы ничего не настраивать специально, а по рабоче-крестьянски. по праздничному как сейчас (шутка).
еще можно забиндить на клавишу. что отчасти даже проще чем создавать скрипт(в случае одной строки команды), делать на него иконку и кидать на рабстол
я например сделал отдельную громкость на наушники, командами "pactl set-sink-volume +2000" и тп
Отправить комментарий