Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Есть ли возможность автоматического запуска скрипта при выходе компа из сна?  (Прочитано 3729 раз)

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

Оффлайн Meow Ex

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
После. Должно получиться как-то так
#!/bin/sh

case "$1" in
    resume)
        some_script
esac

Оффлайн Stanyslav Kovalsky

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
  • Сувениры Ковальского
    • Просмотр профиля
    • Светильники-подарки
Не срабатывает.
Зато в логе после пробуждения компа вижу -

Aug  8 13:44:26 asus anacron[5138]: Anacron 2.3 started on 2016-08-08
Aug  8 13:44:26 asus anacron[5138]: Normal exit (0 jobs run)

Интересно, что cron запускает после сна? Может туда дописать мой скрипт?

Оффлайн Meow Ex

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Скрипт корявый или запускается до наступления какого-либо события (напр. сетевое подключение).
Можно поставить задержку выполнения
sleep 30но это все полумеры. Без тела скрипта играть в экстрасенсов можно до бесконечности

Оффлайн Stanyslav Kovalsky

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
  • Сувениры Ковальского
    • Просмотр профиля
    • Светильники-подарки
Перезапуск точки доступа, ибо после сна девайсы к компу не могут приконнектиться)

#!/bin/bash
rm /tmp/hotspot.pid
ap-hotspot restart

Можно пример как все должно быть и куда скопировать? Спасибо)

Оффлайн Meow Ex

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Если вот это не взлетит, значит моих знаний недостаточно
#!/bin/sh

case "$1" in
    resume)
        sleep 30 && rm /tmp/hotspot.pid && ap-hotspot restart
        ;;
esac

Плюс, есть подозрение, что эти команды выполняются по sudo

Оффлайн Stanyslav Kovalsky

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
  • Сувениры Ковальского
    • Просмотр профиля
    • Светильники-подарки
Конечно по sudo, но и скрипт из этой директории тоже от суперюзера вроде запускается)
Сейчас проверю...

Пользователь добавил сообщение 08 Августа 2016, 19:56:02:
Спасибо огромное! Все заработало!))

Причем проверил, работает и так -

#!/bin/sh

case "$1" in
    resume)
        rm /tmp/hotspot.pid && ap-hotspot restart
        ;;
esac

Почему раньше не запускалось, не знаю :)
« Последнее редактирование: 08 Августа 2016, 19:56:02 от Stanyslav Kovalsky »

Оффлайн Stanyslav Kovalsky

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
  • Сувениры Ковальского
    • Просмотр профиля
    • Светильники-подарки
neponi, еще вопрос)

Самостоятельно догадался как запускать команды уже наоборот при засыпании компа, но вот какое дело...
Команды, это переход по ссылке для выполнения удаленной задачи.
Все работает, но! если сервер 192.168.20.4 недоступен, то комп не уходит в сон :(

Как дать понять компу, что результаты перехода по ссылке можно игнорить и в любом случае засыпать?
Сам код -

#!/bin/sh

case "$1" in
    suspend|suspend_hybrid|hibernate)
        curl http://192.168.20.4/30000/44
sleep 1 && curl http://192.168.20.4/30000/13
        ;;
esac


Спасибо)

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
#!/bin/sh

case "$1" in
suspend|suspend_hybrid|hibernate)
    if ping 192.168.20.4
    then
        curl http://192.168.20.4/30000/44 && {
        sleep 1; curl http://192.168.20.4/30000/13
        }
    fi
;;
esac

Оффлайн Stanyslav Kovalsky

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
  • Сувениры Ковальского
    • Просмотр профиля
    • Светильники-подарки
renzrv, экран гаснет, комп продолжает работать и уже ни на что не реагирует. Подозреваю, что пинг не останавливается)

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Вот вообше всё-всё надо сделать за Вас?ping -c1 -W2 192.168.20.4
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Meow Ex

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
#!/bin/sh

case "$1" in
suspend|suspend_hybrid|hibernate)
    ping -n -q -i 0.3 -w 3 192.168.20.4 > /dev/null
    if [ $? -ne «0» ]
    then
        exit 0
    else
        curl http://192.168.20.4/30000/44 && {
        sleep 1; curl http://192.168.20.4/30000/13
        }
    fi
;;
esac

Оффлайн Stanyslav Kovalsky

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
  • Сувениры Ковальского
    • Просмотр профиля
    • Светильники-подарки
Azure, я правда не шарю :(

neponi, такой же эффект - экран гаснет, комп продолжает работать и на клаву с мышкой уже не реагирует...

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Ну не настолько же чтобы две опции к команде не добавить?#!/bin/sh

case "$1" in
suspend|suspend_hybrid|hibernate)
    if ping  -c1 -W2 192.168.20.4
    then
        curl http://192.168.20.4/30000/44 && {
        sleep 1; curl http://192.168.20.4/30000/13
        }
    fi
;;
esac
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Stanyslav Kovalsky

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
  • Сувениры Ковальского
    • Просмотр профиля
    • Светильники-подарки
Azure, спасибо огромное!!! Заработало)
Я даже не подозревал, что пинг можно так гибко настроить))
:beer:

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Да забыл добавить параметр -с, уже подсказали.
Цитировать
ping  -c1 -W2 192.168.20.4
1. Один пакет мало, у меня везде 3.
2. Две секунды может не хватить (проверял), лучше 5, и вообще можно без лимита времени, и так отрубается быстро если фэйл.
т.е лучше так:
ping -c3 192.168.20.4можешь посмотреть, проверить в терминале.

 

Страница сгенерирована за 0.033 секунд. Запросов: 23.