Автозапуск скрипта при загрузке ОС с помощью Systemd на примере x11vnc. Service-файлы.

Автозапуск скрипта при загрузке ОС с помощью Systemd на примере x11vnc. Service-файлы.

С массовым переходом на systemd, вопрос запуска скрипта от имени пользователя root при загрузке ОС, стал всё чаще подниматься на форумах и в умах линуксоидов, которым ещё не приходилось сталкиваться с этой новой системой инициализации. Меня этот вопрос так же не обошёл стороной, когда пришлось внедрять корпоративный дистрибутив, использующий systemd и появилась необходимость запускать при загрузке ОС x11vnc от имени пользователя root. Выяснилось, что в systemd, эта задача решается с помощью service-файлов, имеющих простой для понимания формат и создаваемых по стандартному, для этих целей, шаблону. Файлы эти располагаются в /lib/systemd/system (системные) и /etc/systemd/system (эта директория приоритетнее первой для systemd) и имеют имена вида: название.service. Загляните в эти директории, просмотрите несколько service-файлов имеющих знакомые названия типа network.service или cups.service и в общих чертах всё станет ясно. Содержание созданного мной service-файла таково:

[root@comp-core-2-81b58d system]# cat startvncserver.service
[Unit]
Description=Start vnc server /usr/bin/startvncserver

[Service]
Type=oneshot
ExecStart=/usr/bin/startvncserver
RemainAfterExit=yes

[Install]
WantedBy=graphical.target

Где, Description=Start vnc server /usr/bin/startvncserver — Описание сервиса.
Type=oneshot — Задание метода окончания периода запуска сервиса. Oneshot означает что действие, выполняемое сервисом должно быть окончено до запуска следующего сервиса.
RemainAfterExit=yes — Используется в связке с предыдущей опцией и говорит systemd о том, что данный сервис хоть и завершит свою работу после выполнения скрипта, но должен оставаться со статусом active.
ExecStart=/usr/bin/startvncserver — Путь к скрипту для выполнения.
WantedBy=graphical.target — Параметр, который даёт понять systemd, на какой стадии загрузки системы нужно выполнить данный сервис.  multi-user.target соответствует init3. graphical.target соответствует init5.

Для запуска, остановки, перезапуска, просмотра статуса  и включения в автозгрузку сервиса (и соответственно нашего скрипта), используются стандартные команды systemd.
Запустить:

[root@comp-core-2-81b58d system]# systemctl start startvncserver.service

Остановить:

[root@comp-core-2-81b58d system]# systemctl stop startvncserver.service

Перезапустить:

[root@comp-core-2-81b58d system]# systemctl restart startvncserver.service

Посмотреть статус:

[root@comp-core-2-81b58d system]# systemctl status startvncserver.service

И самое важное! Для запуска сервиса при загрузке ОС, его нужно включить:

[root@comp-core-2-81b58d system]# systemctl enable startvncserver.service

С автозагрузкой скрипта разобрались, теперь разберём сам скрипт и опции запуска vnc сервера x11vnc. В нашем случае, подключаются клиенты только из локальной сети, поэтому шифрование мы не используем. Из необходимых требований — запрет завершения процесса от имени пользователя и запрет чтения пароля на подключение пользователем. Поэтому мы запускаем x11vnc от имени root и храним пароль в файле, доступном на чтение только ему.

[root@comp-core-2-81b58d system]# cat /usr/bin/startvncserver

#!/bin/bash
while [[ $(test -f /var/run/xauth/A* ; echo $?) -ne 0 ]]
do
sleep 1s
done
/usr/bin/x11vnc -noipv6 -shared -forever -passwdfile /etc/x11vncpasswd -bg -display :0 -auth /var/run/xauth/A*

Где, используя цикл while мы задаём проверку того, появился ли файл «магической печенки», необходимый для запуска vnc сервера и если он ещё не появился, то ждём 1 секунду и проверяем вновь. Когда необходимый файл появляется, запускаем x11vnc со следующими опциями:

-noipv6 — Не использовать ipv6.
-shared — Обеспечить возможность подключения одновременно нескольких клиентов. Без этой опции, при подключении одного клиента, второй уже подключиться не сможет.
-forever — Не завершать работу сервера после подключения первого клиента.
-passwdfile /etc/x11vncpasswd — Указать, где искать пароль для подключения. Пароль содержится в текстовом файле, без шифрования, либо создаётся командой x11vnc -storepasswd в интерактивном режиме и записывается в файл ~/.vnc/passwd в шифрованном виде. При использовании первого варианта, нужно выставить права на чтение файла только пользователю root и соответственно запускать x11vnc от имени root, что я в общем и описываю.
-bg — запустить процесс на заднем фоне, то есть отвязать его от текущего терминала.
-display :0 — номер дисплея для подключения. По умолчанию в одномониторных системах это :0.
-auth /var/run/xauth/A* — путь к файлу с магической печенкой 🙂 То есть файлу авторизации X сервера. Где он лежит в вашей системе, можно выяснить так:

[yar4e@yar4e-admin ~]$ ps aux | grep X
yar4e     6888  0.0  0.0    568   144 pts/5    D+   14:39   0:00 grep X
root      7324  0.0  0.9  42356 19852 tty7     Ss+  Mar26  26:19 X :0 vt7 -auth /var/run/xauth/A:0-uyXr3I

Всё вышеописанное реализовывалось на Alt Linux P7 TDE и может незначительно отличаться на вашем дистре.

Автор: Yar4e

Органайзер своими руками — мастер-класс

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

  •  картонные полые цилиндры-тубусы (у меня таких накопилось много от хлопковой пряжи, думаю, и у вас тоже они найдутся);
  •  бечевка;
  • лазерный компакт диск;
  • клей (для обмотки цилиндров я бы взяла еще и двухсторонний скотч).

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

разное, органайзер, полезное,

разное, органайзер, полезное,
разное, органайзер, полезное,

 

разное, органайзер, полезное,

 

разное, органайзер, полезное,

 

разное, органайзер, полезное,

 

Автор: Ангелина
Дата публикации: 2015-01-14T20:46:00.001+02:00

Плоский живот. Как добиться лучших результатов?

плоский живот

Одна из проблемных женских зон – живот.

Отложившийся жир с этого места очень сложно согнать. Сколько же терпения и сил требуется женскому полу в борьбе за идеальную фигуру! В ход идут и сложные изнуряющие диеты, и сложные выматывающие упражнения. У женщин живот – это такое место, которое может дополнительно страдать после беременности, мышцы на животе часто слишком растягиваются и становятся дряблые. Читать

Советы любителям сауны


Сегодня на занятии по дыхательной гимнастике зашел разговор : можно ли с пониженным давлением посещать сауну?

И наш тренер Маргарита рассказала, как нужно вести себя в сауне в таких случаях. Читать

Квалификация имен атрибутов

Здравствуйте посетители и читатели. Перед тем как начну, хочу поздравить всех с наступившим новым 2015 годом и с прошедшими праздниками. Ну и всем удачи и успехов в поисках работы или же просто в работе… так как от нее будет зависеть — то, на сколько Вам сладко придется жить 🙂

Немного напомню, что в моих постах информации из замечательной книги… Сам я в питоне пока не шарю, так как я веб программист который в основном сталкивается с РНР,НТМЛ и т.д. — но в последнее время ЯваСкрипт начинает нравиться… думаю скоро выложить на своем втором блоге — про рнр информацию о том, на сколько нужно шарить, чтоб пройти хотяб на джуниора и немножко выше, а так же я постараюсь создать блог на yii с небольшим обьяснением. Ну и собственно ссылка на мой второй блог — http://phpekurs.blogspot.com/ надеюсь я не буду затягивать со временем выпуска материалов как это бывает с этим блогом. Ну что ж, теперь приступим к теме….

После  ознакомления  с модулями  мы  должны  поближе  рассмотреть  понятие квалификации имен. В языке Pythonдля доступа к атрибутам любого объекта используется синтаксис квалификации имени object.attribute.


Квалификация имени в действительности является выражением, возвращаю-щим  значение,  присвоенное  имени  атрибута,  ассоциированного  с объектом.

Например,  выражение module2.sys в предыдущем  примере  возвращает  значение атрибута sys в объекте module2. Точно так же, если имеется встроенный объект списка L, выражение L.append вернет метод append, ассоциированный с этим списком.

Итак, какую роль играет квалификация имен атрибутов с точки зрения правил, рассмотренных нами в главе 17? В действительности – никакую: это совер-шенно независимые понятия. Когда вы обращаетесь к именам, квалифицируя их,  вы  явно  указываете  интерпретатору  объект,  атрибут  которого  требуется получить. Правило LEGB применяется только к кратким, неполным именам. Ниже приводятся принятые правила:
Простые переменные
Использование краткой формы имени, например X, означает, что будет про-изведен поиск этого имени в текущих областях видимости (следуя правилу LEGB).

Квалифицированные имена
Имя X.Y означает, что будет произведен поиск имени X в текущих областях
видимости, а затем будет выполнен поиск атрибута Y в объекте X(не в областях видимости).

Квалифицированные пути
Имя X.Y.Z означает, что будет произведен поиск имени в объекте X, а затем
поиск имени Z в объекте X.Y.

Общий случай
Квалификация  имен  применима  ко  всем  объектам,  имеющим  атрибуты:
 модулям, классам, расширениям типов на языке Cи так далее.

На этом данный пост заканчивается…
не забывайте кликать по рекламке, нужны бабосы на пивасик и немного на жизнь)

Автор: Няшный Человек
Дата публикации: 2015-01-13T21:11:00.000+02:00

Осторожно! — опасная вкуснятина!

Йогурт очень популярен как полезный продукт питания для детей и взрослых. Но, какой йогурт действительно полезен? Только натуральный йогурт!

Настоящий йогурт почти не отличается от кефира. Родился в Болгарии несколько тысяч лет назад. Готовили его из молока и специальной закваски с живыми бактериями и с определенной концентрацией этих бактерий. Живые бактерии живут не более 7 дней при температуре менее +8 градусов.

Что значит натуральный?

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

Что же мы покупаем для себя и детей? Вот у меня в руках красивая баночка со сладким йогуртом известной фирмы Danone. Кроме обезжиренного молока, закваски и бактерий, еще 7 разных наименований, польза от которых не просто сомнительна. Они вредны для организма и перечеркивают всю полезность йогурта.

Среди них, например, генетически модифицированный кукурузный крахмал — Е 1442 – это жестокий удар по поджелудочной железе. И тут здоровый образ жизни может не помочь. Риск возникновения смертельно опасного заболевания – панкреонекроза, — заметно возрастает. Уже есть клинически подтвержденные факты московскими хирургами.

И это часть информации, что касается только одного из 7 ингредиентов. Кстати, из-за сахара кальций из йогурта не всасывается должным образом. Напротив, фактически сахар вымывает кальций из организма.

Все написано очень мелким шрифтом. Из текста не ясно живые ли бактерии. Бактерии долго не живут. При пастеризации гибнут. С мертвыми бактериями польза теряется. О пастеризации ни слова, хотя, это обязательно делается, так как срок годности более одного месяца. И в самом конце написано – «изготовлено с использованием сухого молока».

В современной Болгарии такой искусственный йогурт продавать запрещено.

При регулярном употреблении подобных вкусных йогуртов незаметно можно здоровье свое потерять. Где-то убудет, а на фирмах йогуртовых компаний прибыль прибудет… Шутки шутками, но нужно знать что покупаем и едим. Из всех кисломолочных продуктов самый вредный для человека это сладкий и вкусный йогурт. Хотя, йогуртом его никак нельзя называть, но это уже другая история.

TEXT.RU - 100.00%


Ирина Федорова