Как очистить экран iPod?

Вы выполните процедуры рецепт (при всем уважении)?

  • количество кофе, чтобы соотношение воды. Холодное пиво будет использовать примерно двойным количеством горячего варева.
  • измельчить фасоль в холодной самогон? Я слышал, что вы можете идти так хорошо, как капельное чайник или же грубой, как и французская пресса. Если вы чувствуете, что отношение является правильным и что вы чувствуете, что результаты еще слабы, то вам нужно еще более мелкий помол - но предложение не идти лучше, чем капать.
  • использовать Арабика в зернах. Опять же при всем уважении, холод варит хорошо работать, чтобы смягчить некоторые из горечи, сохраняя другие ароматы. Это приводит к использованию арабика более робусты.

Удачи и дайте нам знать, как это получается? А мне нравится Старбакс холодное пиво.

+683
Frank Hale 3 дек. 2016 г., 04:35:31
16 ответов

Я хочу сделать резервную копию Хуавей Р20 Lite, используя свою "резервную копию" приложения. Но это не предложение "Внутренняя память" в качестве хранилища резервных копий, даже если он поддерживает, что, согласно документации здесь: телефон резервное копирование и восстановление руководство (см. Второй скриншот есть)

Есть 44 ГБ свободной внутренней памяти (64 ГБ всего).

Что не так?

Я хочу сделать резервную копию в наиболее хлопот бесплатно способом. Нет SD карты и имеют слот в любом случае для второй SIM-карты.

+868
Riddhi Shah 03 февр. '09 в 4:24

С обычным для Debian debdelta-обновление работает корректно: он получает список обновляемых файлов, загружает все доступные дельт, и создает необходимый .деб файлы обновления. Так что если пакетов фу, бар, и база есть в наличии дельты, то debdelta-обновление будет принести фу, бари баз, затем закройте.

Но под Убунту дистрибутивы, (проверено с мятой и с Lubuntu), когда есть несколько пакетов с дельты, debdelta-обновления загружает только одну дельту одновременно. Если запустить один раз он извлекает фу, потом уходит; если запустить снова получает баре; если запустить снова, он извлекает баз.

Под Убунту, этот параметр работает; он извлекает все доступные дельт, запустив debdelta-обновление один раз для каждого пакета модернизации:

АПТ список-обновляемая 2> /Дев/нуль | СЕПГ -Н-1!с#/.*##Р' | \
 команды xargs -Н 1 debdelta-обновление

Но это все гораздо медленнее, чем в Debian, так как каждый раз debdelta-обновление работает, он должен 5 секунд на инициализацию ("обновление apt кэш")- если 10 пакеты нуждаются в обновлении, это дополнительный 50-секундная задержка (5 секунд х 10 пакетов) под Убунту вариантов.

Есть ли исправить?

+819
user20913 27 авг. 2012 г., 04:54:10

Мой друг помог мне с моим назначением. Я был немного неприятности и он показал мне, что он сделал. Задание было выступление с PowerPoint в фоновом режиме.

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

В PowerPoint был двенадцать слайдов давно. Является ли это плагиатом?

Редактировать: я привожу его в библиографии, которые я представил на его вклад. Я, однако, не приводят его в PowerPoint. Кроме того, подобные слайды не в PowerPoint, но в таблице до сих пор.

Правка 2: я не был признан виновным в плагиате, однако, я потерял 10% из-за нарушение учебной дисциплины.

+796
Daniel Justine Pagher 3 янв. 2018 г., 15:18:48

У меня есть некоторые сомнения, используя в приложение покупки. Насколько мне известно, только первые в приложение покупки будет одобрена, наряду с двоичной. Это мое нынешнее состояние, у меня приложение уже в AppStore с одного еженедельную подписку.

Теперь мне интересно, если следующие "дорожную карту" можно:

  • Обновление текущих пользовательского интерфейса ИАП
  • Отправить комментарий яблоко еженедельных и Ежемесячные планы подписок(некоторые из них просто менять вводной цене) без отправки бинарных.
  • Мой бэкэнд будет решить, какой план будет показал пользователю.

Моя проблема сейчас я не в состоянии обновить мой нынешний одобренных ИПФ, я изменил название, описание и скриншот, но когда я Сохранить изменения ИПФ государство все-таки одобрили, когда я ожидал его изменить, чтобы представить обзор состояния снова. Можно ли обновить утвержден ИАП? а что если я хочу изменить фон?

С другой стороны, у меня есть еще один ИАП жду обзор последние 5 дней. Это нормально? Я послал вместе с бинарный обзор магазина приложений?

+743
tihumokip 21 дек. 2021 г., 15:31:53

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

Иногда это создает ДЭП-решения, хотя проблемы

+707
mblkv 28 янв. 2016 г., 01:24:16

В то время как $! содержит идентификатор процесса верхнего уровня процесс совсем недавно начал работу в фоновом режиме, это удивительно трудно сделать свою работу ID в верный способ.

Это не обязательно больших идентификатор работу в качестве идентификаторов работу повторно. Это не обязательно РАБОТА, Вы можете обратиться к ПО %% или %+ (или что ФГ не аргумент будет действовать), а приостановил работу, имеют приоритет (как в вашем случае, когда первая работа, скорее всего, будет приостановлено, как он будет пытаться прочитать с терминала, а не на переднем плане) или совсем недавно начали работу, возможно, умер уже (в этом случае %+ будут ссылаться на следующее задание в списке).

Так что тебе понадобится для выполнения задания сначала знать, что работа-для работы, которую вы хотите ФГ (использование ФГ %thatnumber), или если нет другой работы с нуля в имени, выполните:

ФГ %\?ноль

С ЗШ, вы могли бы использовать:

fg_most_recent() {
 местная работа=${(к)jobstates[(Р)*:$!=*]}
 ((работу)) && ФГ %$работа
}

То есть, получить кЕУ в $jobstates ассоциативного массива, значение которого соответствует *:$!=* шаблон ($jobstates выглядят выполняющимся:+:20162=работает:20163=бег дает состояние всех процессов в задании, что ЗШ начал напрямую).

+702
MK Bukhari 29 июл. 2023 г., 11:49:49

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

+695
invictus1306 18 янв. 2011 г., 00:01:53

Если, например, вы едете в США, и самолет делает остановку в Китае для заправки, вы можете въехать в Китай без китайской визы? Если не где пассажиров самолеты-заправщики остаться?

+662
jdbiochem 24 янв. 2021 г., 16:21:59

шнуры человеческое рождение режут, собак не являются, по сути, это главное отличие, обусловленное главным образом умерщвление провод остатки и как люди растут по сравнению с собаками;

Google некоторые образы детей из сельской Африке/Азии, и вы увидите много кнопок с живота, сходные с вашей собакой (хотя нет точных совпадений, как мы обычно делаем что-то про веревки в одну или другую сторону)

+638
JulianJohannesen 1 дек. 2011 г., 08:08:53

Есть ли разница во вкусе/семена яйцо размером баклажаны или баклажаны, а длинные и тонкие баклажаны или баклажаны?

Они разных форм. Есть ли другие "известные/видна" разница?

+558
user251002 15 нояб. 2017 г., 23:05:51

Я как-то у них работал раньше в 11.10, но я не помню что я сделал тогда другие, чем активация "компоненты нагрузки Гнома на запуск" в диспетчере установки просто наберите: по.

Я пробовал то же самое в 12.04, но, кажется, не делать ничего, я конкретно спрашиваю, на громкость уведомления, как другие уведомления уведомления-меню или xfce4-notifyd , но объем был в GNOME (я обнаружил, что позже) насколько я знаю он использует уведомления-демон,но установка его вместо других двух не дает мне необходимую уведомления.

Я использование Xfce 4.10

Это то, что я получаю от работы гном-настройки-демон в терминале.

(гном-настройки-демон:3841): ГТК-предупреждение **: тема ошибка синтаксического анализа: ГТК-виджеты.Усс:1137:14: не используя блоки устарела. Предполагая, что 'Военторга'.

** (гном-настройки-демон:3841): предупреждение **: Вы можете работать только один менеджер хустановки одновременно; выход

** (гном-настройки-демон:3841): предупреждение **: не удается запустить Диспетчер хустановки: не удалось инициализировать хустановки менеджер.

** (процесс:3849): предупреждение **: GDBus.Ошибка:орг.freedesktop.ДГУ.Ошибка.ServiceUnknown: название орг.гном.SessionManager не была предусмотрена никакими .обслуживание файлов

** (гном-настройки-демон:3841): предупреждение **: не удалось зарегистрировать клиента: GDBus.Ошибка:орг.freedesktop.ДГУ.Ошибка.ServiceUnknown: название орг.гном.SessionManager не была предусмотрена никакими .обслуживание файлов

** (гном-настройки-демон:3841): предупреждение **: имя или автобус ушел - выключением
+538
Kirschenregen 5 окт. 2018 г., 16:28:23

Я обновился с 12.04 и потеряли возможность подключить несколько Bluetooth-гарнитур, чтобы смотреть фильмы с моей женой и не мешать соседям! Любой гарнитур, который соединяет первый и останется единственным гарнитуры, которые могут использовать аудио-раковина. Любая идея, как это исправить?

+486
user13610 17 сент. 2010 г., 05:29:38

Мое понимание заключается в том, что

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

Но я чувствую, что я может быть не правильно, прочитав следующие две книги. Не могли бы вы поправить меня, если я ошибаюсь?

  1. В архитектуре ядра Linux Маурер, термины "системный процесс" и "процесс" используется без определения, например, когда вводя деление виртуального адресного пространства в пространство ядра и пользователь пространстве:

    Каждый пользовательский процесс в системе имеет свой собственный диапазон виртуальных адресов что простирается от 0 до TASK_SIZE . Площадь выше (от TASK_SIZE до 2 32 или 64 2 ) предназначен исключительно для ядра и не может быть доступны пользовательские процессы. TASK_SIZE архитектура-специфический константа, которая делит адресное пространство в заданном соотношении — в ИА-32 систем, например, адресное пространство делится на 3 Гб, так что виртуальное адресное пространство для каждого процесса составляет 3 ГБ; 1 Гб для ядра, потому что общий размер виртуального адресного пространства составляет 4 Гб. Хотя фактические показатели отличаются по архитектура, общие понятия нет. Поэтому я использую эти образец ценности в наших дальнейших обсуждений.

    Это деление не зависит от того, сколько оперативной памяти доступно. Как результатом решения виртуализации пространство, каждому процессу пользователя считает имеет 3 Гб памяти. В userspaces индивидуальной системы процессы полностью отделены друг от друга. Пространстве ядра в в верхней части виртуального адресного пространства всегда одинаковый, независимо от текущего выполняющегося процесса.

    ... Ядра делит виртуальное адресное пространство на две части таким образом, что он способен защитить индивида системные процессы друг от друга.

    Вы можете прочитать больше примеров, посредством поиск либо "пользовательский процесс" или "системный процесс" в книге.

    Как пользовательские процессы и процессы системные процессы, в отличие от для ядра?

    Каковы их определения? Они отличаются от своих хозяев (регулярный пользователей или корень?), пользователя, который запустил их, или что-то еще?

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

  2. В понимание ядра Linux с помощью Бове, есть понятия "ядра контроль путь" и "ядра потока".

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

    ... Традиционных системах Unix делегировать некоторые важные задачи периодически запущенных процессов, в том числе промывка дисковых кэшей, выгрузив неиспользуемые страницы, обслуживающих сетевые подключения, и так далее. Действительно, это не эффективно для выполнения этих задач в строгой линейной моды; обе их функции и конечный пользователь процессы, вам лучше ответ, если они запланированы на заднем плане. Потому что некоторые из системные процессы выполняются только в режиме ядра, современные операционные системы делегировать свои функции для потоков ядра, которые не обременены ненужными контексте пользовательского режима. В Linux ядре нити отличаются от обычных процессов следующим образом:

    • Потоки ядра выполняются только в режиме ядра, в то время как регулярные процессы выполняются кроме того, в режиме ядра и в пользовательском режиме.

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

    Вы можете прочитать больше на поиск их в Google книгах.

    Это "системный процесс" в книге Маурер и в книге Бове той же концепции?

    Может "системный процесс" упоминается в двух книгах, которые выполняются в пространстве пользователя, в пространстве ядра, или как?

    Это "системный процесс" отличается от пути управления ядра и поток ядра?

+420
Sreekanth Boddireddy 9 мая 2021 г., 15:13:43

Посадить их как есть, не пытайтесь чинить лампочки. В лучшем случае лампа просто нужно немного влаги из окружающего грунта. В худшем случае, лампа просто не будет расти.

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

+408
Anonymous English Maj 13 июн. 2014 г., 02:19:11

Решение с newsyslog:

# журнал [владелец:группа] считать режим, когда флаги
в /var/кальмары/журналы/доступ.лог 644 26 $W0D0 Ин

В журнале будут поворачивать 26 раз, прежде чем он будет удален. $W0D0 указывает на то, что я буду поворачивать каждое воскресенье в 0:00 часов.

Флаг Джей указывает на то, что newsyslog должны сжимать повернутый файл через помощью bzip2.

Флаг Н означает, что нет процесса, который должен получить сигнал.

+324
sareeshmnair 20 мая 2021 г., 11:37:43

Я использую разветвленного сценария Феликс в течение примерно шести месяцев и до прошлой недели это было довольно хорошо работает (после того как я добавил файл sysctl -w в сети.протокол IPv4.ip_forward=1 линии предложили отеле Nehal Дж Вани и закомментировал pipefail - как это будет катастрофа с ним иначе).

Еще я заметил, что в последнюю неделю он совсем перестал работать (в Debian 9.4). Я провел много времени, пытаясь отладить, что пошло не так, как сценарий весьма полезно - но как бы я ни пытался я не мог получить его снова работает.

Так как это очень полезная функция, я хочу предложить альтернативный форк работы Schnouki, который хорошо работает в случае, если кто-то столкнулся с такой же проблемой.

https://github.com/crasm/vpnshift.sh

#!/бин/Баш
#
# Авторское право (c) 2016, crasm <[email protected]>
#
# Разрешение использовать, копировать, изменять и/или распространять программу в любой
# цель с или без настоящим предоставляется, при условии, что выше
# уведомление об авторских правах и данное уведомление о разрешении во всех копиях.
#
# ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ" И АВТОР ОТКАЗЫВАЕТСЯ ОТ ВСЕХ ГАРАНТИЙ
# В ОТНОШЕНИИ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВКЛЮЧАЯ ВСЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ
# ПРИГОДНОСТИ. НИ В КОЕМ СЛУЧАЕ АВТОР НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА
# ЛЮБЫЕ СПЕЦИАЛЬНЫЕ, ПРЯМЫЕ, КОСВЕННЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ИЛИ ЛЮБОЙ УЩЕРБ
# ПОНЕСЕННЫЙ В РЕЗУЛЬТАТЕ ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ, БУДЬ ТО В
ДЕЙСТВИЕ № КОНТРАКТА, НЕБРЕЖНОСТИ ИЛИ ДРУГИМ ДЕЛИКТНЫМ ДЕЙСТВИЯМ, ВЫТЕКАЮЩИМ ИЗ
# ИЛИ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ ИЛИ РАБОТОЙ ДАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.


использование="использование: vpnshift -с <конфиг> [<команда> [<параметр>...]]
дополнительно:
 параметр-U <пользователь> выполнить <команду> как <пользователь>
 -D для переключения пространства имен оболочки отладки

если не указано иное:
 - Команду по умолчанию для пользователя оболочки (${раковины}).
 - Пользователь должен быть выведен из суда.
"

quick_die() {
 формат="$1"; сдвиг
 >&2 функции printf "${формат}\п" "$@"
 выход 1
}

умереть() {
 формат="$1"; сдвиг
 >&2 функции printf "${формат}\п" "$@"
 clean_exit 1
}

тишина() {
 функция eval "$@" > /dev/нуль 2> /dev/нуль
}

должны() {
 функция eval "$@" || умереть "ошибка: %s" на "$*"
}

is_running() {
 местные пид="$1"
 тихо убить -с 0 "${пид}"
}

sig_kill() {
 местные пид="$1"
 тихо убить -убить с "${ПИД}"
}

sig_term() {
 местные пид="$1"
 тихо убить -с термином "${пид}"
}

clean_exit() {
 местные exit_code="$1"

 если is_running "${openvpn_pid}"; затем
 # Убить брелка.
 sig_term "${openvpn_pid}"
 >&2 е "остановка для OpenVPN (идентификатор процесса = %д)." "${openvpn_pid}"
 для меня в {1..100}; делать
 если is_running "${openvpn_pid}"; затем
 спать 0.1
 е "."
еще
перерыв
интернет
сделано
 функции printf "\Н"

 если is_running "${openvpn_pid}"; затем
 >&2 Echo "а вынуждены убивать для OpenVPN"
 sig_kill "${openvpn_pid}"
интернет
еще
 >&2 Echo "а для OpenVPN вышел"
интернет

 # не начинайте уборку до OpenVPN-это пошло
 тишина и ip netns удалить "${пространство имен}"
 тише РМ --рекурсивный --сила "${namespace_dir}"
 тише помощью sysctl --тихий чистый.протокол IPv4.ip_forward="${вперед}"
 если замять ПС-с выполнение firewalld''; тогда
 Эхо "[выполнение firewalld] очистка государства выполнение firewalld"
 тише systemctl перезапустить выполнение firewalld
еще
 Эхо "${правила}" | тишина в iptables-восстановление
интернет

 # Иногда есть лаг для veths быть удален Linux, поэтому мы
 # удалить его вручную.
 хуш ИС ссылке Удалить "${veth_default}"
 хуш ИС ссылке Удалить "${veth_vpn}"

 выход "${exit_code}"
}

нсдо() {
 в ip netns exec для "${пространство имен}" "$@"
}

На _debug=0

основной() {
 местные конфигурации=
 локальный пользователь="${SUDO_USER}"
 в то время как команде getopts "СЭБ:у:" опт; делать
 дело "${опт}" в
 з) quick_die "${использование}" ;;
 Д) на _debug=1 ;;
 в) конфигурации="$(реального пути "${OPTARG}")" ;;
 и) пользователь="${OPTARG}" ;;
 *) quick_die "неизвестный параметр: %s" на "${опт}" ;;
эсок
сделано
 сдвиг $(( OPTIND - 1 ))

 если [[ -з "${конфиг}" ]]; затем
 требуется quick_die "для OpenVPN конфиг"
интернет

 если [[и-Z "${пользователь}" ]]; затем
 quick_die "пользователю должна быть предоставлена прямо через '-U' или неявно через SUDO_USER"
интернет

 местную команду cmd="$1"; сдвиг

 если [[ -з "${ЦМД}" ]]; затем
команду cmd="${раковины}"
интернет

 должны в ip netns добавить vpnshift
 --родители должны команды mkdir "${namespace_dir}"

 # Настройка loopback-интерфейс 

 должны нсдо IP-адреса добавьте '127.0.0.1/8' Дев Ло
 должны нсдо IP-адреса добавьте '::1/128' Дев Ло
 должны нсдо установить связи IP-Ло до

 # Настройка тоннеля на Соколе

 должны ИС ссылке добавить "${veth_vpn}" Соколе введите имя узла "${veth_default}"
 должны ИС установить связь "${veth_vpn}" netns "${пространство имен}"

 должны ИС установить связь "${veth_default}" до
 должны нсдо связи IP-набор "${veth_vpn}" до

 должно IP-адрес добавить "10.10.10.10/31" Дэв "${veth_default}"
 должны нсдо ИС \
 адреса добавить "10.10.10.11/31" Дэв "${veth_vpn}"

 должны нсдо ИС \
 добавление маршрута по умолчанию через "10.10.10.10" Дэв "${veth_vpn}"

 # Настроить NAT и IP-пересылки
 должны команды sysctl --тихий чистый.протокол IPv4.ip_forward=1

 # проверить, если нам нужно включить маскарадинг через выполнение firewalld для veth_default
 если замять ПС-с выполнение firewalld''; тогда
 Эхо "[выполнение firewalld] включение выполнение firewalld, основанные маскарадинг для ${veth_default}"

 если [[ $(брандмауэр cmd --вам-зон | команда grep "${пространство имен}") != *"${пространство имен}"* ]]
тогда
 Эхо "[выполнение firewalld] создание новой зоны ${пространство имен} с целью по умолчанию"
 должны брандмауэр cmd -м --постоянного --новый-зоны="${пространство имен}"
 должны брандмауэр cmd -м --постоянного --зоны="${пространство имен}" - установить-цель="по умолчанию"
 должны брандмауэр cmd -м --перезагрузить
интернет

 # добавить интерфейс для нашей зоны
 Эхо "[выполнение firewalld] добавление ${veth_default} и ${veth_vpn} в зоне ${пространство имен}"
 должны брандмауэр-УМК -вопрос-зона="${пространство имен}" --изменение-интерфейс="${veth_default}"

 # используем наш спектр источника в нашей зоне
 Эхо "[выполнение firewalld] добавление 10.10.10.10/31 как источник ${пространство имен}"
 должны брандмауэр-УМК -вопрос-зона="${пространство имен}" - добавить-источник=10.10.10.10/31

 # включить маскарадинг из нашего нового исходного диапазона на зоны по умолчанию
 default_zone=$(брандмауэр cmd --сделать по-умолчанию-зоны)
 Эхо "[выполнение firewalld] включение маскарадинг на зоны по умолчанию: ${default_zone}"
 должны брандмауэр-УМК -вопрос-зона="${default_zone}" - добавить-маскарад
 должны брандмауэр cmd -м-зона="${default_zone}" - добавить-богатые-rule=правило\'семья="адрес IPv4" адрес источника="10.10.10.10/31" маскарад\'

 # дополнительно разрешить порты, сервисы и т. д. на нашей зоне

 # включение нужные порты
 #Эхо "позволяет всем порт трафик на зону ${пространство имен}"
 #должен брандмауэр-УМК -вопрос-зона="${пространство имен}" --добавить порт=1025-65535/УДП
 #должен брандмауэр-УМК -вопрос-зона="${пространство имен}" --добавить порт=1025-65535/ПТС

 # включить службы
 #Эхо "позволит DNS в зоне ${пространство имен}"
 #должен брандмауэр-УМК -вопрос-зона="${пространство имен}" перезагрузки ДНС

еще
 надо в iptables --таблица "нац" --добавить "POSTROUTING" - прыжок, "маскарад" --источник "10.10.10.10/31"
интернет

 # Настройка DNS внутри нового пространства имен
 е > "${namespace_dir}/файл resolv.конф" \
 "сервер %з\nnameserver %з\п" \
 "108.62.19.131" \
"104.238.194.235"

 # напишите в консоли для отладки связности пространства имен ... выхода из ловушки будут ловить выход из этого и убирать
 если [[ "$_debug, а" == 1 ]]; затем
 нсдо "${раковины}"
интернет

 # Запускаем программу OpenVPN
 местные Тун="tunvpn"
 нсдо для OpenVPN \
 --и CD "$(каталог "${конфиг}")" \
 --конфигурация "${конфиг}" \
 --Дев "${Тун}" \
 - ошибки в поток stderr &

 openvpn_pid=$(ПС --цвет "$!" \
 --формат "пид" \
- нет-заголовки
)

 >&2 е "ожидание для OpenVPN (идентификатор процесса = %д)\н" "${openvpn_pid}"

 пока ! тише нсдо ссылке показывают ИС "${Тун}"; сделать
 если ! is_running "${openvpn_pid}"; затем
 clean_exit 1
интернет
 спать 0.2
сделано

 # Удаление маршрут по умолчанию защищает от воздействия, если для OpenVPN выходы
 # досрочно.
 должны нсдо ИС \
 удалить маршрут по умолчанию через "10.10.10.10" Дэв "${veth_vpn}"

 нсдо судо -у "${пользователь}" "${ЦМД}" "$@"
}

если [[ $# == 0 ]]; тогда
 quick_die "${использование}"
Элиф [[ "$(ИД -у)" != 0 ]]; затем
 судо "$0" "$@"
 выход "$?"
интернет

# Вещи, необходимые clean_exit (), чтобы восстановить предыдущее состояние.
пространство имен="vpnshift"
namespace_dir="/и т. д./netns/${пространство имен}"
вперед="$(переменная sysctl --ценности "нет.протокол IPv4.ip_forward")"
правила="$(в iptables-сохранить -Т нац)"
veth_default="veth_default"
veth_vpn="veth_vpn"

openvpn_pid= # это позже.

# Включить процедуру очистки.
ловушка 'clean_exit 1' ИНТ термин
ловушка 'clean_exit $?' Выход

главная "$@"
+229
teaguecustommarine 18 окт. 2011 г., 10:30:54

Показать вопросы с тегом