<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Нестандартный вопрос по systemd]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=40497&amp;type=atom" />
	<updated>2020-09-28T08:39:14Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=40497</id>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467857#p467857" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Cruiser78 пишет:</cite><blockquote><p>Есть просто дача, на ней небольшой сервачок на РазбериПай, который изображает какой-то интеллект по управлению инженерной инфраструктурой этой дачи. Ну, например, набрать ночью (по минимальному тарифу) бак воды, полить (в мое отсутствие сад утром и вечером) в зависимости от сухости почвы, проконтролировать температуру в комнатах и подогреть комнаты, днем слегка, а вечером - потеплее.</p></blockquote></div><p>Генератор дизельный прилепить, Wilson. И мессагу на смс: &quot;через 5 часов опускаются бронированные шторы и запускается таймер самоликвидации&quot;.&nbsp; <img src="https://linuxforum.ru/img/smilies/ag.gif" alt="ag" /> Смех-смехом, но вещь чувствую интересная, что-то вроде &quot;Умного дома&quot; на Linux? А каким образом данные собираете с датчиков? Помнится на одной нефтебазе в молодости я софт-контроллер слепил, который одновременно обслуживал 10 станций налива цистерн с бензином. Вроде на одной КР580ВВ55А + мультиплексор (К155КП1 кажется) + оптопары ну и собирал данные самописной прогой (отдельный поток) в Дельфях через LPT (ECP, двунаправленный) порт, всего 20 датчиков было... Верхий уровень + импульсы литража поканально 10 штук. <strong>Всё это аккуратно складывалось в табличку DBase</strong>. Сервак держать для таких вещей, как-то, мягко говоря, слишком жирно было. А так - раз в месяц новая таблица и всё т.с. Табличка не грузится - реиндекс и вперёд. Софт то Вы сами наверное пишите под железное окружение (датчики, исп/мех)? И почему, скажем, не ПЛК? У Овнов вроде есть и готовые решения (прошивки) всяких там реле времени, измерители температуры, архиваторы с памятью и т.д. Сам я в них не спец, но в эмуляторе пробовал ваять на ST. Каким образом вы собираете данные? Просто интересно, у меня то же дача есть... Если всё это на Линуксе замутить, без ПЛК - это же определённо шаг к массовому внедрежу, т.е. шаг вперёд, однозначно.</p>]]></content>
			<author>
				<name><![CDATA[alex_q_2000]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41015</uri>
			</author>
			<updated>2020-09-28T08:39:14Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467857#p467857</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467850#p467850" />
			<content type="html"><![CDATA[<p><strong>Cruiser78</strong></p><p>Тебе чего пожелать - успеха или удачи?</p>]]></content>
			<author>
				<name><![CDATA[ValentinK]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41064</uri>
			</author>
			<updated>2020-09-27T17:01:45Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467850#p467850</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467849#p467849" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ValentinK пишет:</cite><blockquote><p>Но почему такие выкрутасы с MySQL?</p></blockquote></div><p>)) Это ещё не все выкрутасы... )) Предположим злой электрик взял и отрубил рубильник. Сервис принял сигнал от упса, дескать пора прекращать всё это безобразие с обработкой данных, отправил в базу последний пакет данных и прибил программу сбора. Электрик почесался и включает рубильник назад, электричество подано, упс опять перешёл в нормальный режим. Т.е. сервис сбора лёг, а питание восстановилось... Опять неувязочка...&nbsp; <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[alex_q_2000]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41015</uri>
			</author>
			<updated>2020-09-27T17:00:18Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467849#p467849</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467848#p467848" />
			<content type="html"><![CDATA[<p>Да всё проще. Нет никаких Дата-Центров и не будет. Нет никаких Ораклов и не будет (мне этого на работе выше крыши). Есть просто дача, на ней небольшой сервачок на РазбериПай, который изображает какой-то интеллект по управлению инженерной инфраструктурой этой дачи. Ну, например, набрать ночью (по минимальному тарифу) бак воды, полить (в мое отсутствие сад утром и вечером) в зависимости от сухости почвы, проконтролировать температуру в комнатах и подогреть комнаты, днем слегка, а вечером - потеплее.<br />Вот и вся проблема в том, чтобы аккуратно завершить полив сада-огорода, не устроить там болото, если внезапно электричество пропадет. То есть надо поймать переход на бесперебойник и, если надо, по сигналу с бесперебойника, закрыть все сливные краны. А то выливать в грядки куб воды - весь урожай смоет. Оно надо? А краны закрываются в течение 7-10 секунд. Вот мне и надо всё аккуратно закрыть, отметить в базе что произошло и кильнуться. <br />Вот и вся задача. Не надо ничего придумывать. Надо только суметь продержать работающим MySQL до завершения закрытия этих кранов. Чтобы он не кильнулся раньше. И всего делов...<br />=================<br />В принципе - задачу можно решить и из NUT&#039;а. Закрыть краны оттуда, а затем выключить сервер. Я хотел сделать это на чистом systemd. Но, похоже, что есть сложности.</p>]]></content>
			<author>
				<name><![CDATA[Cruiser78]]></name>
				<uri>https://linuxforum.ru/profile.php?id=631</uri>
			</author>
			<updated>2020-09-27T16:54:30Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467848#p467848</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467847#p467847" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alex_q_2000 пишет:</cite><blockquote><p>Ок. Однако он железки хочет увязать с программными делами. Отключили питание, сервак перешёл на упс, часы тикают до разряда. Поток данных идёт непрерывно и потоку неизвестно, отрубили питание или нет. Получается, что процесс полностью асинхронный, а поскольку ему нужно получить цельный вывод в базу без откатов и завершить сбор данных, потребуется ещё и саму &quot;загогулину&quot; прибить по факту завершения. Т.е... Выкл питания, Вкл UPS, тут нужно поймать сигнал от упса и приступить к завершению. Вот тут могут быть непонятки.</p></blockquote></div><p>Но почему такие выкрутасы с MySQL?<br />Если бы это Oracle был с критическими данными?</p><p>Как это я разумею -<br />Есть данные, есть коммиты.<br />Не успел пройти коммит - данные надо вводить повторно.<br />Данные берутся из сети - значит, надо быть гтовым к отключению сети.<br />Или коммит не прошёл - клиент в клиентском приложении не получил подтверждения о завершении ввода данных.<br />У клиента по таймауту - извинения за неполадки и просьба повторно ввести данные чуть позже.</p><p>Что он хочет сохранять, в MySQL - вообразить трудно.</p>]]></content>
			<author>
				<name><![CDATA[ValentinK]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41064</uri>
			</author>
			<updated>2020-09-27T16:43:21Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467847#p467847</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467846#p467846" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ValentinK пишет:</cite><blockquote><p>Какие-то дикие понты. У него сервер с УПС. Он прикалывается.</p></blockquote></div><p>Ок. Однако он железки хочет увязать с программными делами. Отключили питание, сервак перешёл на упс, часы тикают до разряда. Поток данных идёт непрерывно и потоку неизвестно, отрубили питание или нет. Получается, что процесс полностью асинхронный, а поскольку ему нужно получить цельный вывод в базу без откатов и завершить сбор данных, потребуется ещё и саму &quot;загогулину&quot; прибить по факту завершения. Т.е... Выкл питания, Вкл UPS, тут нужно поймать сигнал от упса и приступить к завершению. Вот тут могут быть непонятки.&nbsp; <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p><p>p.s. Подозреваю, что он пачками там что-то в базу грузит... Может гео- или метео-... Но это только догадки...</p>]]></content>
			<author>
				<name><![CDATA[alex_q_2000]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41015</uri>
			</author>
			<updated>2020-09-27T16:25:24Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467846#p467846</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467845#p467845" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alex_q_2000 пишет:</cite><blockquote><p>У ValentinK нужно уточнить, может быть при записи в базу мускула какой-нибудь *.lock файл создаётся</p></blockquote></div><p>Какие-то дикие понты. У него сервер с УПС. Он прикалывается.<br />А по-хорошему приложение свои настройки может хранить в своём файле настроек, можно .INI, можно в формате XML.</p>]]></content>
			<author>
				<name><![CDATA[ValentinK]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41064</uri>
			</author>
			<updated>2020-09-27T16:08:24Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467845#p467845</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467844#p467844" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Cruiser78 пишет:</cite><blockquote><p>Не получится коммитить транзакции.</p></blockquote></div><p>Может отследить окончание транзакции <span class="bbu">перед</span> ребутом/шотдауном/остановом ещё одним сервисом?</p><p>У <strong>ValentinK</strong> нужно уточнить, может быть при записи в базу мускула какой-нибудь *.lock файл создаётся, чтобы было к чему прицепиться. Уже 100 лет бд не занимался и то в InterBase. ))</p><p>Всё же думаю, что данные пишутся некой &quot;загогулиной&quot;, у которой должен быть pid. Эта же прога занимается обработкой критических ситуаций при отсутствии доступа к БД. Гарантий не даю, поскольку сие из разряда &quot;костылей&quot;. Будет ли оно ждать - не проверял. Можно проверить на файле (изменить условие ExecStart) и поиграться с типом сервиса. Т.е. пока существует файл, должен висеть. После удаления должен уйти в ребут и т.д.</p><p>В юните ниже отслеживается pid некого процесса.</p><p>/etc/systemd/system/my-transaction.service</p><div class="codebox"><pre><code>[Unit]
Description=Control end of MySQL transaction
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target

[Service]
Type=oneshot или simple или forking
ExecStart=/bin/bash -c &#039;while [[ -n $(pidof my_process) ]]; do echo &quot;transaction active&quot;; sleep 3; done&#039; (в скрипт)

[Install]
WantedBy=halt.target reboot.target shutdown.target</code></pre></div><p>p.s. Идиотизм конечно с моей стороны, но может и заработает...&nbsp; <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[alex_q_2000]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41015</uri>
			</author>
			<updated>2020-09-27T15:50:25Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467844#p467844</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467843#p467843" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Cruiser78 пишет:</cite><blockquote><p>Там &quot;особая&quot; ситуация - аварийное, по сигналу с УПСа, завершение работы.</p></blockquote></div><p>Это какая-то самодеятельность.<br />Дата-центр обеспечивает бесперебойное питание сервера.<br />Или у вас локальный сервер, подключённый к локальному UPS?<br />Стоит задуматься - а стоит ли овчинка выделки?</p>]]></content>
			<author>
				<name><![CDATA[ValentinK]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41064</uri>
			</author>
			<updated>2020-09-27T15:49:35Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467843#p467843</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467842#p467842" />
			<content type="html"><![CDATA[<p>Не получится коммитить транзакции.&nbsp; Там &quot;особая&quot; ситуация - аварийное, по сигналу с УПСа, завершение работы. Произойти оно может в любой момент времени. Мало ли когда электричество выключат... Вот и надо &quot;погасить&quot; внешнее безмозглое оборудование, которое на том же бесперебойнике сидит. И отметить этот факт в базе данных. А потом и самому кильнутся. После чего должна и база остановиться. Но не раньше. Как-то так.</p>]]></content>
			<author>
				<name><![CDATA[Cruiser78]]></name>
				<uri>https://linuxforum.ru/profile.php?id=631</uri>
			</author>
			<updated>2020-09-27T15:23:03Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467842#p467842</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467841#p467841" />
			<content type="html"><![CDATA[<p>Завершайте ваши транзакции - commit - по выполнении, а не ждите останова системы.<br />Или сохраняйте настройки вашего сервиса в отдельный файл, а не в базу данных.</p>]]></content>
			<author>
				<name><![CDATA[ValentinK]]></name>
				<uri>https://linuxforum.ru/profile.php?id=41064</uri>
			</author>
			<updated>2020-09-27T14:42:48Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467841#p467841</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Нестандартный вопрос по systemd]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=467840#p467840" />
			<content type="html"><![CDATA[<p>Всем привет!</p><p>Возникла несколько нестандартная задачка. А именно есть два systemd-сервиса, первый - mySQL, второй - просто второй. Важно, чтобы второй сервис:<br />1. Грузился после запуска MySQL. Ну, это в юните элементарно прописывается, нет проблем;<br />2. Завершался перед остановом (то есть при рабочей еще) MySQL. Пишет он туда данные, надо, чтобы база эти данные приняла, и только потом отключилась (при перезагрузке компа, например).<br />В общем, с первым - вопросов нет никаких, а вот как средствами Systemd обеспечить желаемый порядок выключения сервисов? Я не смог&nbsp; найти ответа на этот вопрос.</p>]]></content>
			<author>
				<name><![CDATA[Cruiser78]]></name>
				<uri>https://linuxforum.ru/profile.php?id=631</uri>
			</author>
			<updated>2020-09-27T13:36:48Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=467840#p467840</id>
		</entry>
</feed>
