The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В скрипте инициализации RHEL допущена ошибка, приводящая к у..., opennews (ok), 24-Мрт-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


47. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –16 +/
Сообщение от клоун (?), 24-Мрт-15, 11:55 
Грабли здесь в проверке наличия уже запущенного экземпляра приложения. В Линукс это принято делать, создавая пустой временный файл. Следуя этой логике дальше, протоколирование хода работы программы также осуществляется созданием и удалением пустых временных файлов. При перезапуске программы всех эти файлы нужно удалить. Небольшая ошибка - и удаляется ЗНАЧИТЕЛЬНО больше запланированного.

В 60-е (когда Торвальдс учился в ВУЗе) это казалось передовой практикой (всё есть файл), но не сегодня. Старую собаку не научишь новым приёмам. Поэтому так важно, чтобы ничто и никогда не замыкалось на одного человека.

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

62. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +13 +/
Сообщение от pkdr (ok), 24-Мрт-15, 12:37 
А какая есть лучшая практика? Реестр от укуренных индусов из M$? И если понимать, как устроен компьютер, то да, всё, что содержит информацию есть файл.

Торвальдс 69 года рождения, если он ухитрился в 60-е учиться в вузе, то его гениальность неоспорима - подтверждается даже ботом из M$.

Ответить | Правка | Наверх | Cообщить модератору

110. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –1 +/
Сообщение от клоун (?), 24-Мрт-15, 16:16 
Задача решается с использованием примитивов синхронизации межпроцессного взаимодействия, которые должны быть частью API. Примитивов.
Ответить | Правка | Наверх | Cообщить модератору

112. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от Аноним (-), 24-Мрт-15, 16:58 
> Задача решается с использованием примитивов синхронизации межпроцессного взаимодействия, которые должны быть частью API. Примитивов.

При таком решении теряется главное преимущество концепции "всё есть файл" — универсальность. В данном случае под этим следует подразумевать возможность получения информации [о наличии запущенного экземпляра программы] из скриптов и прочего ненативного кода.

Ответить | Правка | Наверх | Cообщить модератору

133. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –2 +/
Сообщение от клоун (?), 24-Мрт-15, 17:40 
Иными словами, вы считаете необходимым в угоду концепции "всё есть файл" заменить все функции API на 4 функции работы с файловой системой (read, write, open, close), так?

Постебусь, пожалуй, немного:

file.open("api_query");
file.write("GetDMAChannel := 1")
file.close()

file.open("api_wait");
file.write();
file.close();
while(1)
{
if(!file.open("api_wait"))break;
file.close();
}

file.create("api_result");
file.read();
file.close();

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

Ответить | Правка | Наверх | Cообщить модератору

222. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –1 +/
Сообщение от Аноним (-), 24-Мрт-15, 22:53 
> При таком решении теряется главное преимущество концепции "всё есть файл" — универсальность.

Иди поработай с ioctl'овыми апи универсально, ога :)

Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

116. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –1 +/
Сообщение от Аноним (-), 24-Мрт-15, 17:25 
> Реестр от укуренных индусов из M$?

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

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

221. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –1 +/
Сообщение от Аноним (-), 24-Мрт-15, 22:52 
> как в простыню на bash, так и юнит-файл systemd.

Но поскольку системдэ умеет уйму всего сам - у нас будет относительно отлаженное core, которое скриптокидозники с руками из ж...ы не переизобретают в очередной раз. И позвать это core будет относительно безопасно, в отличие от кода писаной левой пяткой какого-то укурившегося упыря, считающего что кто-то всенепременно гарантирует наличие правильной переменой, а думать что будет если там ничего нет - не для него. Поттер и то не такой дуб.

Ответить | Правка | Наверх | Cообщить модератору

271. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +1 +/
Сообщение от Аноним (-), 25-Мрт-15, 23:29 
> Хранение конфигов в иерархической базе ключ-значение - сама по себе вполне здравая идея.

А ничего что ФС уже и есть такая "БД"? :)

Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

65. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от Аноним (-), 24-Мрт-15, 12:43 
Торвальдс родился в 1969 и учился в конце 80-ых - начале 90-ых.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

123. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от Аноним (-), 24-Мрт-15, 17:34 
> Торвальдс родился в 1969 и учился в конце 80-ых - начале 90-ых.

По вашим собственным меркам, он старый пeрдун.

Ответить | Правка | Наверх | Cообщить модератору

78. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от PnDx (ok), 24-Мрт-15, 13:20 
> Грабли здесь в проверке наличия уже запущенного экземпляра приложения. В Линукс это
> принято делать, создавая пустой временный файл. Следуя этой логике дальше, протоколирование
> хода работы программы также осуществляется созданием и удалением пустых временных файлов.
> При перезапуске программы всех эти файлы нужно удалить. Небольшая ошибка -
> и удаляется ЗНАЧИТЕЛЬНО больше запланированного.

  [/var]/run — вполне себе неплохое соглашение, ещё со времён SysV.
Грабли подстерегали желающих управлять сервисами таким вот простым способом, но при чём тут ядро?

  Вопрос однозначно юзер-спейса. Его с переменным успехом решают в винде/соляре, построив целые минные поля /попробуйте настроить автоснапшоты с соляре/. Теперь вот и для Linux (systemd). И оно ­— пострашнее солярного, т.к. ломится в кернел. Ну хоть без xml пока (трижды сплёвываем).

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

115. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от Аноним (-), 24-Мрт-15, 17:24 
>попробуйте настроить автоснапшоты с соляре

Одна команда. Не понял в чём проблема?

Ответить | Правка | Наверх | Cообщить модератору

129. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от PnDx (ok), 24-Мрт-15, 17:37 
> Одна команда. Не понял в чём проблема?

  В xml'ном расписании. Ниже - выдержка из небольшого конфига на 96 строк. Правда, легко читать </sarcasm>

    <instance name='hourly' enabled='false' complete='true'>
      <property_group name='zfs' type='application'>
        <propval name='interval' type='astring' value='hours'/>
        <propval name='keep' type='astring' value='23'/>
        <propval name='period' type='astring' value='1'/>
      </property_group>
      <property_group name='general' type='framework'>
        <propval name='action_authorization' type='astring' value='solaris.smf.manage.zfs-auto-snapshot'/>
        <propval name='value_authorization' type='astring' value='solaris.smf.manage.zfs-auto-snapshot'/>
      </property_group>
    </instance>

Ответить | Правка | Наверх | Cообщить модератору

223. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от Аноним (-), 24-Мрт-15, 22:54 
К счастью, Поттеринг не любит XML, в отличие от санок и прочих огрызкопи...сов.
Ответить | Правка | Наверх | Cообщить модератору

89. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +1 +/
Сообщение от Аноним (-), 24-Мрт-15, 14:09 
>но не сегодня

Plan9? Не, не слышал!

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

114. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +2 +/
Сообщение от Аноним (-), 24-Мрт-15, 17:12 
> Грабли здесь в проверке наличия уже запущенного экземпляра приложения. В Линукс это принято делать, создавая пустой временный файл.

Файл нужен чтобы знать, какому процессу посылать сигнал остановки. Начхать юниксам на запущенность приложения. Это чушь, придуманная леннартом, которую он с помпой выкатил в systemd. А когда его ткнули фейсом в лужу он начал помечать свои же эпичные изобретения как not recommended, и вроде даже посты на эту тему из своего блога убрал.

Есть две базовые операции: start и stop. Операция start проста - запустить прогу (хотя леннарт и тут умудрился накостылять). Со stop-ом сложнее - надо послать сигнал, но кому? Если у тебя БД и ты пошлёшь сигнал не тому процессу - можешь остаться без базы. И никто кроме самого приложения не знает, кому надо посылать сигнал. Пол века назад в юниксах нашли выход: приложение само записывает в файл pid процесса, которому надо посылать сигнал остановки. Всё.

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

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

117. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –1 +/
Сообщение от Аноним (-), 24-Мрт-15, 17:25 
В наше время всегда побеждает наихудшее решение. ВСЕГДА.
Ответить | Правка | Наверх | Cообщить модератору

178. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +1 +/
Сообщение от Аноним (-), 24-Мрт-15, 18:44 
> И что самое странное - даже после этого у него есть приспешники.

Эксперимент третья волна, вот и все дела.

Ответить | Правка | К родителю #114 | Наверх | Cообщить модератору

127. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +/
Сообщение от Eugene Ryabtsev (?), 24-Мрт-15, 17:35 
Грабли в том, что в операциях с FS нет DELETE_ON_EXIT без разыменования файла (что примечательно, в IPC всё точно наоборот).
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру