![]() |
Скриптеры! Помогите.
Суть: не для кого не секрет, что в большенстве дистрибутивов не работают конфигураторы pptp подключений. и их приходится поднимать в ручную, для этого я написал скрипт:
#! /bin/bash . /etc/rc.d/init.d/functions case "$1" in up) echo "Подключается интернет..." pppd call lanpolis echo "Добавить маршрут? y or n?" read x case $x in y) route add default ppp0 echo "Маршрут добавлен" ;; *) echo "Маршрут не добавлен" esac echo "OK - Made by Stereoz" ;; down) echo "Отключается интернет..." ПРОБЛЕМА ТУТ echo "ОК - Made by Stereoz" ;; *) echo "Неверный параметр $1" exit 1 esac exit 0 Проблема с отключением интернета если тупо вводить ifconfig ppp0 down то процесс не убивается, и следующее подключение идет через ppp1 и т.д. процесс можно убить kill PID но скрипт то не знает какой id он только знает какой Pname, как можно получить переменную возвращающую id процесса зная его имя? Заранее спасибо тем кто откликницца!!! |
а если за'grep'пить вывод top и оттуда уже выдрать PID ????
|
killall 'process name'
|
Во-первых из топа выдрать не получится, а только из ps -e pppd | grep -i pppd но тогда можно получить переменную типа PID TIME PNAME. а вообще как сказать бэшу что бы он работал, с переменной как со строкой, по аналогии с паскалем? to ZorG спасибо.
|
ещё pkill есть
|
Попробуй так....
Цитата:
|
ЭЭЭ да. единственное что не понятно это (последние 6 символов)
pppd call lanpolis > /dev/null 2>&1 & Пасибо тебе, но только она не работает как надо, короче через раз работает. пишет что нет такого устройства, ну да ладно а вообще я сократил свою до: #! /bin/bash . /etc/rc.d/init.d/functions case "$1" in up) echo "Подключается интернет..." pppd call lanpolis sleep 2 route add default ppp0 ;; down) echo "Отключается интернет..." killall pppd ;; *) echo "Неверный параметр $1" exit 1 esac echo "OK - Made by Stereoz" exit 0 Все замечательно работает!!!!!:yees: |
поиграйся с pgrep и pidof
|
Это же элементарный init-script... например назовём его - "progd"
На этом примере стартует "konqueror" ( можешь свою прогу таким образом запускать... ) и пишет номер процесса в файл "/var/run/prog.pid" /etc/init.d/progd {start|stop|restart|status} Цитата:
|
Цитата:
запускной скрипт),так что совет если файлик есть,то If-ом проверить бегает ли процесс. P.S Кстати,можно поиграться с lsof,посмотреть какие процессы держат тот или иной файл,включая дивайс файлы |
а еще можно построить что-то вида
ps aux | grep process | awk и получить искомое ) |
| Часовой пояс GMT +4, время: 10:38. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.