Настройка профилей процессов на ubuntu

Мне было интересно, можно ли настроить профили для моего ноутбука ubuntu таким образом, чтобы:

  • Отключить apache / mysql / postgresql при запуске на batterymode
  • Отключите все процессы, которые пытаются подключиться к Интернету, если беспроводная связь отключена.

3 Solutions collect form web for “Настройка профилей процессов на ubuntu”

Раньше я не встречал концепцию такого профиля в Ubuntu, поэтому я предполагаю, что вы не можете сделать это сразу с места в карьер.

Я мог ошибаться, принимая это, и это было бы неплохо. Однако, если предположить, что нет приложения, чтобы сделать это, и у меня было сильное желание это сделать, вот теперь я бы пошел.

Я собираюсь написать это с предположением, что вы используете Gnome, так как это среда, которую я знаю лучше всего. Основной поток процессов должен оставаться действительным, если вы находитесь в какой-либо другой среде рабочего стола или консоли.

Gnome позволяет настроить некоторые аспекты поведения системы через System> Preferences> Power Management . Это вызывает предпочтения gnome-power , и это обеспечивается процессом демонов gnome-power-manager . На странице проекта gnome мы знаем, что gnome-power-manager зависит от HAL, чтобы узнать, работает ли ноутбук от аккумулятора.

гном-менеджер питания

Итак, запустите gnome-device-manager, чтобы узнать, что знает HAL. Найдите запись для аккумулятора . Если вы видите только вкладку сводки, включите « Просмотр»> «Свойства устройства» . Да, есть два ключа, которые нам нужны: battery.rechargeable.is_discharging и battery.rechargeable.is_charging

гном-устройства-менеджер

Теперь мы знаем, что нам нужно, мы должны выяснить, как получить доступ к этому через командную строку. Полезно HAL поставляется с инструментами командной строки для доступа к этой информации. Сначала мы запускаем

Гальваническое устройство | Меньше

И найдите ключ battery.rechareable.is_discharging . Сделайте резервную копию, чтобы получить блок, который детализирует информацию о вашем аккумуляторе:

56: udi = '/org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0' linux.subsystem = 'power_supply' (string) info.capabilities = { 'battery' } (string list) info.subsystem = 'power_supply' (string) info.product = 'DELL CC1546' (string) info.udi = '/org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0' (string) battery.type = 'primary' (string) battery.reporting.technology = 'Li-ion' (string) battery.technology = 'lithium-ion' (string) battery.model = 'DELL CC1546' (string) battery.vendor = 'Panasonic' (string) battery.voltage.design = 11100 (0x2b5c) (int) battery.voltage.unit = 'mV' (string) battery.reporting.design = 4700 (0x125c) (int) battery.reporting.unit = 'mAh' (string) battery.serial = '1076' (string) battery.present = true (bool) battery.voltage.current = 12712 (0x31a8) (int) battery.reporting.rate = 2765 (0xacd) (int) battery.is_rechargeable = true (bool) battery.rechargeable.is_charging = true (bool) battery.rechargeable.is_discharging = false (bool) battery.reporting.current = 3407 (0xd4f) (int) battery.reporting.last_full = 3963 (0xf7b) (int) battery.charge_level.current = 37817 (0x93b9) (int) info.parent = '/org/freedesktop/Hal/devices/computer' (string) linux.sysfs_path = '/sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0' (string) battery.charge_level.design = 52170 (0xcbca) (int) battery.charge_level.percentage = 85 (0x55) (int) battery.remaining_time = 723 (0x2d3) (int) battery.charge_level.rate = 30691 (0x77e3) (int) battery.charge_level.last_full = 43989 (0xabd5) (int) info.category = 'battery' (string) linux.hotplug_type = 2 (0x2) (int) 

Обратите внимание на устройство устройства. Теперь запросите требуемое свойство, используя команду hal-get-property :

 $ hal-get-property --udi /org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0 --key "battery.rechargeable.is_discharging" true 

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

 #!/usr/bin/env perl my ($sleep_duration) = @ARGV; print "Sleep:$sleep_duration\n"; do{ my $status = qx(hal-get-property --udi /org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0 --key "battery.rechargeable.is_discharging"); if ($status =~ /true/) { print "On battery power\n"; # shut down apache # shut down mysql # shut down postgresql } sleep $sleep_duration; } while (true); 

Внутри скрипта вы должны использовать сценарии запуска для чистого отключения mysql и т. Д.

Sudo /etc/init.d/mysqld stop

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

Если вы решите не делать этого, проверьте этот вопрос для получения инструкций о том, как разрешить скрипту выполнять команды, требующие прав root.

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

Я не совсем уверен, как вы проверяете и отключите все процессы, которые пытаются подключиться к сети, но следующие команды могут помочь вам в этой задаче:

 # list all processes using port 80 lsof -i tcp:80 #list programs connected via tcp #include -u to include udp connections sudo netstat -ntp 

laptop-mode-tools могут делать то, о чем вы просите.

    /etc/laptop-mode/conf.d/start-stop-programs.conf
        Модуль start-stop-programs позволяет запускать или останавливать программы
        Когда компьютер переключается в другое состояние питания.

        CONTROL_START_STOP
                  Если этот параметр включен, средства для работы с ноутбуком будут автоматически
                  Запускать и останавливать демоны или другие программы для вас. 
                  Фактическая конфигурация которых должна быть
                  Остановка / запуск выполняется путем размещения ссылок на инициализацию демонов
                  Скриптов в следующих каталогах:

                     / И т.д. / ноутбук режим / прочес пуск

                     / И т.д. / ноутбук режим / прочес-стоп

                     / И т.д. / ноутбук режиме / лм-ас-старт

                     / И т.д. / ноутбук режиме / лм-ас-стоп

                     / И т.д. / ноутбук режим / nolm-ас-старт

                     / И т.д. / ноутбук режим / nolm-ас-стоп
                  Как вы, наверное, догадались, каталоги формы «X-
                  Stop-daemons "должны содержать init-скрипты демонов, которые вы
                  Хотите остановить в режиме X, в то время как каталоги формы «X-
                  Start-daemons "должны содержать init-скрипты демонов, которые
                  Вы хотите начать в режиме X. Конечно, можно поставить
                  В вашей собственной работе с режимами: единственное требование
                  На скриптах в каталогах заключается в том, что они обрабатывают
                  Команды «start» и «stop», как обычно делают сценарии инициализации.

                  Порядок обработки скриптов следующий.  Когда
                  Режим введен, действия предыдущего режима отменены,
                  В обратном порядке.  Это означает, что если предыдущий режим
                  «Daemon1 stop», «daemon2 stop» и «daemon3 start», затем
                  Отменными действиями будут «daemon3 stop», «daemon2 start»,
                  «Daemon1 start».  После этого стоп-скрипты для нового
                  Вызываются, а затем вызывается сценарии запуска.
                  Обратите внимание, что не обнаружено общности
                  Между режимами в этой точке, т. Е. Если режим, в котором вы собираетесь
                  Из и в режиме, в котором вы собираетесь указывать, что демон
                  «X» следует остановить, а затем демон не будет остановлен
                  (То есть, при запуске), оставив предыдущий режим, а затем
                  Снова остановился.

        BATT_STOP

        BATT_START

        LM_AC_STOP

        LM_AC_START

        NOLM_AC_STOP

        NOLM_AC_START

                  Эти параметры позволяют останавливать службы (через их init
                  Скрипты) в определенных степенных состояниях.  Укажите пробел
                  Список имен служб в этих параметрах.  Эти услуги
                  Запущен / остановлен вместе с файлами из каталогов
                  упомянутое выше.

Можно отключить основную функцию (откручивание жесткого диска) из файла конфигурации, он все равно будет выполнять другие действия.

Вы можете использовать эту команду для остановки или запуска служб:

 sudo /etc/init.d/'preferred services' stop|start|restart 
  • Новичок: VirtualBox «нет загрузочного носителя»
  • Ubuntu устанавливает ботинки в BusyBox
  • Мышь случайно замерзает около 20 секунд в Ubuntu 10.10, пожалуйста, помогите устранить неисправность
  • Несколько шлюзов по умолчанию
  • Songbird не запускается из-за GStreamer в Ubuntu 9.10
  • Проблемы с Bash 4.2.45 на Ubuntu
  • Ubuntu 10.04 не загружается и переходит на пустой экран - не удается войти
  • Grub2 не может загружать Windows 7 с ошибкой «недопустимая подпись»
  • Как установить обновленную версию PEAR / PHPUnit на Ubuntu?
  • Apache2 RewriteRule не работает
  • Внешний жесткий диск непризнан в Win10, но отлично работает в Win8.1
  • Interesting Posts

    В Windows 7 я могу создать Symlink или Junction для winsxs или папок установщика

    Как передать основной источник данных отчета в подзаголовок (JasperReports)?

    Entity Framework .Remove () vs. .DeleteObject ()

    Неразрешенный внешний символ для статических членов classа

    FFmpeg – Консолидация аудиофайлов с интервалом

    Пакетное преобразование .mkv в .mp4

    Установка Windows 10. Отсутствует медиа-драйвер, который требуется вашему компьютеру.

    Хорошее бесплатное приложение для конвертирования в VOB-файл в бесплатное ПО MPEG

    Как устранить ошибку «Excel нашел нечитаемый контент в (filename)»?

    Экран дисплея нетбука искажен (имеет черно-белые и горизонтальные линии, зависание экрана и / или неправильную позицию отображения)

    Как я могу реализовать пользовательскую панель действий с пользовательскими кнопками в Android?

    Разница между jQuery.extend и jQuery.fn.extend?

    Java 7: путь к файлу

    Что такое JAXB и почему я должен его использовать?

    Могу ли я создать RAM-диск с использованием памяти GPU?

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