Скрипт для подключения SFS и запуска программ
Автор: bicyclist56
Опубликовано: 4377 дней назад (2 мая 2012)
Рубрика: Жизнь с Иванной продолжается!
Редактировалось: 5 раз — последний 26 июня 2012
|
+1↑ Голосов: 1 |
У меня работает с новым initrd.gz, который позволяет автоподключение до 32 SFS, находящихся в папке, указанной в параметре загрузчика sfsdir=...
Вот он с комментариями:
Однако, в результате экспериментов выяснилось, что для сохранения возможности подключения других SFS вручную количество автоподключенных не должно превышать 26. Если больше, вылезает окно с ошибкой, при попытке подключить вручную.
И приведу еще раз скрипт, без комментариев, если кто пожелает использовать как образец:
Вот он с комментариями:
Код PHP:
Кстати, я не очень разбираюсь в скриптописании, но упорство и труд... сами знаетеЧитайте, к примеру, http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html#!/bin/bash #Пример скрипта для подключения SFS и запуска программ. Можно назначать кнопкам запуска в #дополнительной панели XFCE (альтернативное меню с расширенными возможностями), #делать ярлыки запуска на раб.столе и т.п. У меня все такие скрипты расположены в /root/MyApps/Start/ # имя файла SFS, без расширения: SFS="Kino-1.3.4-Lucid_528" # Имя файла DESKTOP в /usr/share/applications без расширения, нужно открыть в текст.редакторе #соответствующий файл, имя будет показано в заголовке окна редактора: DFNAME="Kino" # исполняемый файл программы, читаем в строке Exec=... CMD="/usr/bin/kino" # главный процесс, который можно вычислить с помощью, например, lxtask: SERVICE="kino" # полное имя SFS, если он находится в папке /mnt/home/SFS_START/ - эта папка указана в menu.lst #загрузчика, параметр sfsdir=../SFS_START (рядом с сист.папкой): SFS0="/mnt/home/SFS_START/"$SFS.sfs # полное имя файла DESKTOP: DF="/usr/share/applications/"$DFNAME".desktop" # полное имя SFS, если он находится в папке /mnt/home/SFS/ - здесь находятся остальные SFS, #подключаемые вручную по мере надобности: SFS1="/mnt/home/SFS/"$SFS.sfs # проверка наличия процесса в памяти (запущена ли программа): if ps -r | pgrep $SERVICE > /dev/null # сообщение, в заголовке окна имя процесса: then Xdialog --title "$SERVICE" --msgbox "Программа работает!\n Завершите работу, если нужно." 6 0; exit; fi # если файл DESKTOP имеется (программа установлена, или автоматически подключен SFS с ней): if [ -e $DF ] && [ -e $SFS0 ] # запустить исполняемый файл программы: then $CMD; exit; fi # если SFS в папке с поключаемыми вручную: if [ -e $SFS1 ] # подключить/отключить SFS then /usr/sbin/mnt_sfs $SFS1; exit; fi # если ни одно из вышеприведенных условий не выполнено, то сообщение, в заголовке окна исп.файл программы: Xdialog --title "$CMD" --msgbox "Программа не найдена. Проверьте наличие $SFS.sfs\n в /mnt/home/SFS/ или /mnt/home/SFS_START/" 6 0; exit; # иконку для кнопки запуска нужно выбирать такую, которая появляется только при подключенном SFS, #тогда сразу будет видно, в каком состоянии находится SFS
Однако, в результате экспериментов выяснилось, что для сохранения возможности подключения других SFS вручную количество автоподключенных не должно превышать 26. Если больше, вылезает окно с ошибкой, при попытке подключить вручную.
И приведу еще раз скрипт, без комментариев, если кто пожелает использовать как образец:
Код PHP:
#!/bin/bash SFS="Kino-1.3.4-Lucid_528" DFNAME="Kino" CMD="/usr/bin/kino" SERVICE="kino" DF="/usr/share/applications/"$DFNAME".desktop" SFS0="/mnt/home/SFS_START/"$SFS.sfs SFS1="/mnt/home/SFS/"$SFS.sfs if ps -r | pgrep $SERVICE > /dev/null then Xdialog --title "$SERVICE" --msgbox "Программа работает!\n Завершите работу, если нужно." 6 0; exit; fi if [ -e $DF ] && [ -e $SFS0 ] then $CMD; exit; fi if [ ! -e $DF ] && [ -e $SFS0 ] then /usr/sbin/mnt_sfs $SFS0; exit; fi if [ -e $SFS1 ] then /usr/sbin/mnt_sfs $SFS1; exit; fi Xdialog --title "$CMD" --msgbox "Программа не найдена. Проверьте наличие $SFS.sfs\n в /mnt/home/SFS/ или /mnt/home/SFS_START/" 6 0; exit;