Сайт | Скачать | Видео | Wiki

Автор Тема: [РЕШЕНО] Как создать ярлык в PuppyRus Richy  (Прочитано 7650 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Как создать 3 ярлыка на рабочем столе c командами
Код
/opt/lampp/lamp start
/opt/lampp/lamp restart
/opt/lampp/lamp stop
в PuppyRus Richy beta 3

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Как создать ярлык в PuppyRus Richy
« Ответ #1 : 17 Июнь 2012, 09:04:12 »
 Создаёте где нибудь, например в /root/my-applications/bin/, скрипт с командой.
Код
#!/bin/sh
exec /opt/lampp/lamp start
и вытаскиваете его на рабочий стол. Для каждой команды отдельно. Можно украсить ярлык - правый клик по ярлыку - добавить значок.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Re:Как создать ярлык в PuppyRus Richy
« Ответ #2 : 17 Июнь 2012, 16:52:36 »
А как сделать чтобы при нажатии мышкой по скрипту он открывался в терминале?

Код
#!/bin/sh
printf "===================================================\n Запуск Lampp 1 \n Остановка Lampp 2 \n Перезапуск Lampp 3 \n===================================================\n Введите цифру:"
read var1

case "$var1" in
  "1" )  exec /opt/lampp/lampp start;;

  "2" )  exec /opt/lampp/lampp stop;;

  "3" )  exec /opt/lampp/lampp restart;;
 
 esac #


sleep 5s
exit


Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Как создать ярлык в PuppyRus Richy
« Ответ #3 : 17 Июнь 2012, 17:14:06 »
urxvt -e script.sh
запустит в терминале. название скрипта свое подставите.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Re:Как создать ярлык в PuppyRus Richy
« Ответ #4 : 17 Июнь 2012, 18:51:00 »
Уже правда 2 файла но всеже работает=)
У меня еще один вопрос как сделать индикаторы запущен ли apache или mysql.. Как я хочу.. Lampp PID процесса хранит в /opt/lampp/logs/httpd.pid (Apache) и /opt/lampp/var/mysql/`/bin/hostname`.pid (mysql). Ктото подскажет как считать файл в котором находится PID.. И узнать запущен ли этот процесс и соответствует он нужному мне приложению.

Допустим PID процесса 8593, как я понял псевдо папка proc содержит в себе много интересной информации. А именно /proc/8593/cmdline содержит команду запуска приложения. Тойсть нужно считать /opt/lampp/logs/httpd.pid.. Проверить существует ли файл /proc/"PID"/cmdline.. Если есть, считываем его и проверяем на соответствие со строкой запуска. Я не могу считать файл и результат забить в переменную..


Чуток почитал  про bash и написал скрипт
Код
#!/bin/sh


httpdPid=`cat /opt/lampp/logs/httpd.pid`
httpdCmdLinc=`cat /proc/$httpdPid/cmdline`
#==========
stringg="/opt/lampp/var/mysql/"`/bin/hostname`".pid"
mySqlPid=`cat $stringg`
mySqlCmdLinc=`cat /proc/$mySqlPid/cmdline`

if [ $httpdCmdLinc == "/opt/lampp/bin/httpd-kstart-DSSL-DPHP5-E/opt/lampp/logs/error_log" ]
then
echo "Apache работает PID:"$httpdPid
else
echo "Apache не работает"
fi

if [ $mySqlCmdLinc == "/opt/lampp/sbin/mysqld--basedir=/opt/lampp--datadir=/opt/lampp/var/mysql--plugin-dir=/opt/lampp/lib/mysql/plugin--user=nobody--log-error=/opt/lampp/var/mysql/puppyrus.err--pid-file=/opt/lampp/var/mysql/puppyrus.pid--socket=/opt/lampp/var/mysql/mysql.sock--port=3306" ]
then
echo "MySql работает PID:"$mySqlPid
else
echo "MySql не работает"
fi

printf "
===================================================
|Запуск Lampp    |1
|Остановка Lampp |2
|Перезапуск Lampp|3
===================================================
 Введите цифру:"
read var1

case "$var1" in

  "1" )  exec /opt/lampp/lampp start;;

  "2" )  exec /opt/lampp/lampp stop;;

  "3" )  exec /opt/lampp/lampp restart;;
 
 esac #
Хоть выглядит все не профессионально.. Да кого я обманную, работает оно еще ужаснее чем выглядит.. Можно както подавить вывод ошибки `cat путь к файлу` если файл не существует?
« Последнее редактирование: 18 Июнь 2012, 01:07:21 от nitrofox »

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Re:Как создать ярлык в PuppyRus Richy
« Ответ #5 : 18 Июнь 2012, 01:44:23 »
а почему не работает такая конструкция
Код
if [[ -e /opt/lampp/logs/httpd.pid && -e /proc/`cat /opt/lampp/logs/httpd.pid`/cmdline]]
then
httpdPid=`cat /opt/lampp/logs/httpd.pid`
httpdCmdLinc=`cat /proc/$httpdPid/cmdline`
if [ $httpdCmdLinc == "/opt/lampp/bin/httpd-kstart-DSSL-DPHP5-E/opt/lampp/logs/error_log" ]
then
echo "Apache работает PID:"$httpdPid
else
echo "Apache не работает"
fi
else
echo "Apache не работает"
fi
Выдает ошибку в 3 строке. А 3 строка это условие if [[ -e /opt/lampp/logs/httpd.pid && -e /proc/`cat /opt/lampp/logs/httpd.pid`/cmdline]] как пишутся условия в bash?
Код
/opt/lampp/fun.sh: line 3: unexpected token `newline', conditional binary operator expected
/opt/lampp/fun.sh: line 3: syntax error near `/opt/lampp/logs/httpd.pid`/cmdline]]'
/opt/lampp/fun.sh: line 3: `if [[ -e/opt/lampp/logs/httpd.pid && -e/proc/`cat /opt/lampp/logs/httpd.pid`/cmdline]]'
Script completed hit RETURN to close window.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Как создать ярлык в PuppyRus Richy
« Ответ #6 : 18 Июнь 2012, 01:55:29 »
Выдает ошибку в 3 строке. А 3 строка это условие if [[ -e /opt/lampp/logs/httpd.pid && -e /proc/`cat /opt/lampp/logs/httpd.pid`/cmdline]]
почему двойные скобки [] ?
/proc/`cat /opt/lampp/logs/httpd.pid`/cmdline это вобще непонятно что и зачем.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Re:Как создать ярлык в PuppyRus Richy
« Ответ #7 : 18 Июнь 2012, 03:01:12 »
/proc/`cat /opt/lampp/logs/httpd.pid`/cmdline

Я думал что конструкция `cat /opt/lampp/logs/httpd.pid` вставит в путь к файлу содержимое файла httpd.pid и выйдет условие на существования файла /proc/30000/cmdline.. Есть файл существует значит и процесс существует. Сверяем содержимое файла с командой запуска apache. Если они одинаковы значит это тот процесс который нам нужен и apache запущен. А вот почему [[]], а не [] сам не знаю.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Как создать ярлык в PuppyRus Richy
« Ответ #8 : 18 Июнь 2012, 03:08:27 »
и выйдет условие на существования файла /proc/30000/cmdline
а что наличие файла с записанным PID уже не гарантирует что процесс запущен?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Re:Как создать ярлык в PuppyRus Richy
« Ответ #9 : 18 Июнь 2012, 04:27:53 »
и выйдет условие на существования файла /proc/30000/cmdline
а что наличие файла с записанным PID уже не гарантирует что процесс запущен?

Хз.. Я чтото запутался.. Как  я понимаю /opt/lampp/logs/httpd.pid это обычный файл в который сохраняется PID процесса запущенного апатч.. Не правильное завершение системы и этот файл останется с несуществующим PID. Или я не прав? И как я понимаю уникальные номера процессам linux раздает рандомно.. И при следующем запуске и работы в системе PID c файла /opt/lampp/logs/httpd.pid может соответствовать уже совершенно другому приложению. Или файл httpd.pid на особом учете у OS и при смерте процесса или при перезагрузке компьютера он сам его удаляет? По крайней мере я запустил lampp посмотрел содержимое файла httpd.pid. Убил процесс. А файл не куда не делся и содержимое тоже.. Хоть web сервер уже не работает

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Как создать ярлык в PuppyRus Richy
« Ответ #10 : 18 Июнь 2012, 04:44:51 »
Хз.. Я чтото запутался.. Как  я понимаю /opt/lampp/logs/httpd.pid это обычный файл в который сохраняется PID процесса запущенного апатч..
а это вам скажут на форуме lampp каком нибудь, прям так и спросите: Как определять что сервер запущен?

мне бы хватило вывода ps -A| grep httpd
если вывод не пустой, значит запущен, если пустой - значит не запущен
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Re:Как создать ярлык в PuppyRus Richy
« Ответ #11 : 18 Июнь 2012, 04:57:16 »
мне бы хватило вывода ps -A| grep httpd
Да и правда так проще.. А как написать условие if?
« Последнее редактирование: 18 Июнь 2012, 05:13:41 от nitrofox »

Оффлайн nitrofox

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +0/-0
  • Автор темы
Re:[РЕШЕНО] Как создать ярлык в PuppyRus Richy
« Ответ #12 : 18 Июнь 2012, 07:37:40 »
Всем спасибо. Разобрался с скриптами bash чуток.. Все реализовал что задумал. Вроде работает