LINUX.ORG.RU
решено ФорумAdmin

Вопрос о автозапуске скрипта


0

0

Необходима помощь в решении такого вопроса:

1. у меня есть точка доступа на убнт. В каталоге proc/dev/wifi есть файл extant в нем изменяется значение на 1 или 0

2. Мне необходимо чтобы был постоянно запущен скрипт любой который бы мне при изменении вышесказаного значения изменял бы значение файла div в этом же каталоге на 1 или 0 соответственно.

Как мне это сделать помогите пожалуйста...



Последнее исправление: tarasfrompir (всего исправлений: 1)

Используй cron и bash. Что-то вроде:

#!/bin/sh

if [ "`cat /proc/dev/wifi/extant`" -eq 1 ]
then
  echo 1 > /proc/dev/wifi/div
else
  echo 0 > /proc/dev/wifi/div
fi

А вообще зачем тебе эта приблуда? Сложно скрипты перепилить вместо div на extant?

admincheg
()

incrond? Если udev ловит какие-то события при смене extant, можно им попробовать.

x3al ★★★★★
()
Ответ на: комментарий от admincheg

Спасибо . испытал но как его засунуть туда (аналог Опенврт) чтобы он постоянно это делал не отключаясь. Я пробовал похожий скрипт. он то работал но после перезагрузки исчезал. В линуксе я не ООЧень ..

tarasfrompir
() автор топика
Ответ на: комментарий от admincheg

Блин где тут редактирование.. ? И еще как сделать чтобы он постоянно висел запущенным и как включить его в атозапуск..?

tarasfrompir
() автор топика
Ответ на: комментарий от tarasfrompir

Блин где тут редактирование.. ?

в личку отписал.

clojure
()
Ответ на: комментарий от tarasfrompir

Насчёт этого не могу сказать (сначала мне почему-то прочиталось убунту, лол) Можно сделать вот так, если там есть команда sleep, однако всё равно он сохранится только до первой перезагрузки:

#!/bin/sh

while [ 1 ]
do
  cat /proc/dev/wifi/extant > /proc/dev/wifi/div
  sleep 1
done

А закинуть туда можно, я думаю, через какой-нибудь telnet или ftp, если они там есть.

admincheg
()
Ответ на: комментарий от admincheg

1. ТОесть он будет работать в цикле -(если правильно понял)???

2. А нагрузку на процессор будет давать большую или нет?

3. Прошивка то чисто убунту но она основана на камиказе 8 (я так понял читай что ОПЕНВПРТ)

tarasfrompir
() автор топика
Ответ на: комментарий от admincheg

Просто щас начал разбираться с прошивками на аппарат - УЖАС я вам скажу хотя и не все ТАК уж сложно...

tarasfrompir
() автор топика
Ответ на: комментарий от tarasfrompir

1. Да

2. Увы, я не могу тебе ответить на этот вопрос, но по идее не должен, там же не просто бесконечный цикл, а с засыпанием на одну секунду.

3. Не пользовал ни первое, ни второе, ни третье, так что ничего точного сказать не могу.

А что ты там вообще такое ваяешь страшное? К чему все эти сложности?

admincheg
()
Ответ на: комментарий от admincheg

Сложность в адаптации прошивки под аппарат . Прошивка от Наностейшн 2 в прошивку для ТПлинк 5210. Там не соответствует ГПИО для переключения антенны в 1 случае гпио 7 а во втором гпио 1. Вот и мучаюсь..

tarasfrompir
() автор топика
Ответ на: комментарий от tarasfrompir

Так ты прошивку с нуля собираешь? Тогда в чём сложности? Впиливаешь в неё cron, и в скрипте инициализации прошивки дописываешь первичные настройки крона, своё скрипт и запуск крона с помощью crond &

Всё это упаковываешь, ?????, PROFIT

admincheg
()
Ответ на: комментарий от tarasfrompir

Честно говоря я последний раз прошивку собирал под какой-то древний асус году в 2009, так что увы, говорю только примерную последовательность действий. Остальное гугл.

Очень, например, понравился один пост из гугла:

echo "SHELL=/bin/sh" > /etc/crontab
echo "PATH=/sbin:/bin:/usr/sbin:/usr/bin" >> /etc/crontab
echo "# m h dom mon dow user  command" >> /etc/crontab
echo "17 *    * * *   ubnt    echo 'DONE SOMETHING'" >> /etc/crontab

/sbin/cron &

В любом случае если ты ковыряешь прошивку, мне кажется ничего сложного в сборке кросс-компилятором (или, если есть пакет, установкой) я не вижу. Всчитни доки по сборке, наверняка обсуждалось уже где.

admincheg
()
Ответ на: комментарий от admincheg

Так ведь это будет исполнятся в 17 минут каждого часа ? А мне нада чтобы при смене одного значения давало другое значение..

tarasfrompir
() автор топика
Ответ на: комментарий от admincheg

доки читал но понять что то трудно сразу Делал скрипт . запускал . но он то ведь один раз исполнялся или в автозапуск добавлял тоже исполянется при запуске только. Вопрос поставим по другому - (если знаеш ответ подскажи) как можна подменить сам гпио в скрипте автозапуска

tarasfrompir
() автор топика
Ответ на: комментарий от tarasfrompir

Хотя да, крон не особо подходит, максимальная дискретность - 1 минута.

Тогда только моё чудоподелие с циклом. И, таки, смотри где у тебя запускаются все скрипты и вписывай туда мой скрипт с амперсандом в конце. В итоге получишь себе то, что хочешь.

Может есть ещё какие отслеживалки event'ов, но я не секу.

admincheg
()
Ответ на: комментарий от tarasfrompir

Давай попробую тебе командами расписать:

# cat > /<root_firmware>/bin/check_wifi_state.sh << EOF
#!/bin/sh

while [ 1 ]
do
  rm -f /proc/dev/wifi/div
  cat /proc/dev/wifi/extant > /proc/dev/wifi/div
  sleep 1
done
EOF

# chmod +x /<root_firmware>/bin/check_wifi_state.sh

# echo "/bin/check_wifi_state.sh &" >> /<root_firmware>/etc/init.d/rc.sysinit

По идее как-то так.

admincheg
()
Ответ на: комментарий от Ubuntu1210

inotify

Поддержу сего оратора. ТС, вам нужен inotifywatch в скрипте.

dhameoelin ★★★★★
()
Ответ на: комментарий от admincheg

По идее как-то так.

Shooshpangewehr какой-то... Нафига такие сложности городить? Нут, ну, если только inotify по религиозным/интеллектуальным/техническим/иным (нужное подчеркнуть) пользоваться нельзя...

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

Ну я же написал, что я не знаю что да как там в прошивках. Написал как точно должно работать, но если есть что-то более удобное и предрасположенное к этому - я только за.

admincheg
()

/etc/rc.d/rc.твойуровень.
Пишешь скрипт по образцу и включаешь его:

root@linux:/# update-rc.d -f твойскрипт
Правда, иногда может зависеть от дистра и системы инициализации.

DeadEye ★★★★★
()
Ответ на: комментарий от admincheg

Ну я же написал, что я не знаю что да как там в прошивках.

Да это не наезд, не кипятись. Я тоже не знаю, давай tarasfrompir пытать - ты берёшь плоскогубцы, я паяльником пока обойдусь. Как надёжно зафиксируешь - я приступлю ...

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

Значит так создал скрипт поставил в папку бин и больше ничего не делал и он заработал!!!!!!. До Єтого форума я все делал также но не ставил в цикл - думал комп зависнет .... Теперь все почти норм одна мелочь осталась вертикаль и горизонталь гаді перевернули вот теперь и нада еще покумекать... Об результате кумекания отпишусь утром...

tarasfrompir
() автор топика
Ответ на: комментарий от tarasfrompir

Значит так создал скрипт поставил в папку бин и прописал в рс.сисинит Заработало . Но теперь нада доделать скрипт - довести до ума.

tarasfrompir
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.