The OpenNET Project / Index page

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

В скрипте инициализации RHEL допущена ошибка, приводящая к удалению всех файлов

24.03.2015 10:27

В подготовленном для тестового выпуска Red Hat Enterprise Linux 6.7 скрипте инициализации прокси сервера Squid выявлена проблема, которая приводит к удалению всех файлов в системе при перезапуске squid. По своей сути ошибка напоминает недавний инцидент с удалением всех файлов пользователя в клиенте Steam и также приводит к выполнению команды "rm -rf /*" в случае незаполнения формирующей путь переменной.

Pavel Šimerda, мэйнтейнер пакета squid из компании Red Hat, смог повторить эксперимент в виртуальной машине с тестовой веткой RHEL 6.7 и установленным пакетом squid-3.1.23-4.el6. Достаточно запустить squid командой "service squid start", после чего инициировать его перезапуск командой "service squid restart", в результате чего начнётся процесс удаления всех файлов на диске. В пакете squid-3.1.23-5.el6 проблема отмечена как решённая (проблемный пакет squid-3.1.23-4.el6 не попал в дистрибутив, ошибка исправлена до публикации). В качестве причины возникновения ошибки упомянуто регрессивное изменение кода. Другая информация пока закрыта для публичного доступа.

Судя по всему, проблема вызвана патчем на основе кода, предложенного для контроля за полным завершением ранее работающего экземпляра squid в процессе перезапуска. В альтернативном скрипте инициализации squid.init операция "rm -rf $SQUID_PIDFILE_DIR/*" используется дважды - в блоках stop и restart, при этом в restart удаление выполняется сразу после выполнения блока stop:


   stop
   rm -rf $SQUID_PIDFILE_DIR/*
   start

Т.е. при запуске "service squid restart" команда "rm -rf $SQUID_PIDFILE_DIR/*" запускается два раза. Переменная SQUID_PIDFILE_DIR определяется статически в начале файла и, кроме вышеотмеченных команд rm, в дальнейшем используется только в проверке наличия этого пути. Подобная чистка содержимого директории, а также сама переменная SQUID_PIDFILE_DIR, убраны из скрипта инициализации RHEL из-за потенциальных проблем.

Патч для решения проблемы с дублированием содержал изменённый вариант функции restart() и был подготовлен на основе неофициального скрипта инициализации, т.е. содержал внутри блока restart типовую строку для чистки ("rm -rf $SQUID_PIDFILE_DIR/*"). С учётом отсутствия переменной SQUID_PIDFILE_DIR в варианте скрипта из состава RHEL 6, подобная чистка приводила к выполнению команды "rm -rf /*".

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Ошибка в Steam для Linux может привести к удалению всех данных пользователя
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: squid, rhel
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (270) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Fracta1L (ok), 10:46, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    А вот был бы у него systemd...
     
     
  • 2.21, да я же (?), 11:17, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > А вот был бы у него systemd...

    и RemoveAllFilesInDir= в настройках юнита...

     
     
  • 3.144, Аныним (?), 17:55, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > и RemoveAllFilesInDir= в настройках юнита...

    http://cgit.freedesktop.org/systemd/systemd/tree/src/shared/util.c#n3136

    > if (path_equal(path, "/")) {
    > log_error("Attempted to remove entire root file system, and we can't allow that.");

    Вот гадский Поцтеринг, даже прострелить свою ногу не дает!

     
     
  • 4.172, myhand (ok), 18:33, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Вот гадский Поцтеринг, даже прострелить свою ногу не дает!

    Это он просто кусок кода у GNU rm слямзил.  man rm, малыш.

     
     
  • 5.179, Аноним (-), 18:45, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Это он просто кусок кода у GNU rm слямзил.  man rm, малыш.

    Тем не менее, в данном случае, в rm этот код оказался бесполезен, а в systemd - вполне себе годен.

     
     
  • 6.191, myhand (ok), 19:12, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Это он просто кусок кода у GNU rm слямзил.  man rm, малыш.
    > Тем не менее, в данном случае, в rm этот код оказался бесполезен

    Вы идиот?  Как может один и тот же кусок кода, использующийся
    одинаково быть полезным и бесполезным?

    Объясняю, проблема не в
    rm -rf /
    а в
    rm -rf /*

    Детишкам нужно объяснять разницу?  И почему защиты от эквивалента второй
    команды (т.е. rm -rf /bin /dev ... после pathname expansion) - в systemd, естественно, нет?

    > а в systemd - вполне себе годен.

    Да нету в systemd вообще директивы RemoveAllFilesInDir, дурашка.

    Вот как будет что-то подобное, да с поддержкой shell globbing - тогда и поговорим.

     
     
  • 7.194, Аноним (-), 19:22, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >  Как может один и тот же кусок кода

    Ну, во-первых, не один и тот же.

    > Детишкам нужно объяснять разницу?

    Тут внизу есть один борцун с Поттерингом, вот ему это объясните :)

    > Вот как будет что-то подобное,

    RuntimeDirectory= уже сто лет в обед. И защита от дурака там еще более суровая.

    > да с поддержкой shell globbing - тогда и поговорим.

    А зачем там shell globbing? В директиве ini-файла указывается только имя самого каталога, безо всяких звездочек.
    Конструкция $DIRNAME/* - это костыль, имманентно присущий shell-скриптам, но не специализированным директивам.

     
     
  • 8.202, myhand (ok), 20:26, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да, coreutils не писали обезъяны с избытком ЧСВ В частности, это означает что ... текст свёрнут, показать
     
     
  • 9.240, Аноним (-), 05:05, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, очень интересно получается в coreutils значит это нормальный код, так держ... текст свёрнут, показать
     
     
  • 10.246, Andrey Mitrofanov (?), 09:28, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Кто с чем к нам, тому того и на лопате Последовательнее некуда ... текст свёрнут, показать
     
  • 10.293, myhand (ok), 14:41, 29/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я подчеркнул, что это не одинаковый код Разница на данном конкретном примере, ... текст свёрнут, показать
     
  • 5.182, Аноним (-), 18:49, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Это он просто кусок кода у GNU rm слямзил.  man rm,
    > малыш.

    Это как-то отменяет тот факт, что "RemoveAllFilesInDir=" не удаляет корень, в отличие от "rm -rf /*"?

     
     
  • 6.185, Аноним (-), 18:52, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это как-то отменяет тот факт, что "RemoveAllFilesInDir=" не удаляет корень, в отличие
    > от "rm -rf /*"?

    У криворуких пользователей системд даже rm -rf /* корень удаляет. Хотя по умолчанию этого делать не должна. Ну понятно почему их стандартное положение вещей не устраивало - руки из другого места.

     
     
  • 7.188, Аноним (-), 19:06, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > У криворуких пользователей системд даже rm -rf /* корень удаляет. Хотя по умолчанию этого делать не должна.

    Вообще-то должна. Но не-криворукие борцуны с systemd не знают, что такое глоббинг, и кто его делает, и какие параметры в итоге получает rm :)

     
     
  • 8.193, Аноним (-), 19:18, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ааа, я там пробельчик забыл вставить Ну молодец малыш, можешь засчитать себе за... текст свёрнут, показать
     
     
  • 9.195, Аноним (-), 19:23, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В сабжевом баге, пробельчика не было ... текст свёрнут, показать
     
     
  • 10.196, Аноним (-), 19:26, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А я не за сабжевый текст говорил в данном случае ... текст свёрнут, показать
     
     
  • 11.198, Аноним (-), 19:32, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    и не жопой, и не в лужу, и совсем-совсем не я ... текст свёрнут, показать
     
     
  • 12.199, Аноним (-), 19:40, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    По крайней мере за то что лично я написал лично отвечаю А не как ваш брат Ему ... текст свёрнут, показать
     
  • 4.174, Аноним (-), 18:34, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А пользователи системд все такие обезьяны?

    Certain commands can operate destructively on entire hierarchies. For example, if a user with appropriate privileges mistakenly runs ‘rm -rf / tmp/junk’, that may remove all files on the entire system. Since there are so few legitimate uses for such a command, GNU rm normally declines to operate on any directory that resolves to /. If you really want to try to remove all the files on your system, you can use the --no-preserve-root option, but the default behavior, specified by the --preserve-root option, is safer for most purposes.

     
     
  • 5.180, Аноним (-), 18:46, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > А пользователи системд все такие обезьяны?

    Андрюшка! Мирофанов! Ты сменил логин, но тебя все равно узнали, по неспособности сформулировать мысль)))

     
     
  • 6.183, Аноним (-), 18:50, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И фапатель на системд умудрился дважды в глинку лицом упасть. Первый раз подумав про Мирофанова(спишем на синтаксическую ошибку). Это твои фантазии какие-то?
    Второй раз не поняв простой английский текст, про rm. Где написано, что всё уже было сделано до Поттеринга. И ничего он там предусмотреть не мог. Только тупо копи-пастинг делать.
     
     
  • 7.187, Аноним (-), 19:04, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Второй раз не поняв простой английский текст, про rm. Где написано, что всё уже было сделано до Поттеринга.

    Вот только почему-то это сделанное до него не помогло предотвратить проблему.

    > И ничего он там предусмотреть не мог. Только тупо копи-пастинг делать.

    http://sources.debian.net/src/coreutils/8.23-4/lib/root-dev-ino.h/#L33

    И в процессе художественно переписать, ага. С тем же успехом можно утверждать, что любая программа на сях - копипаст моего приветмира школьных времен. Нуачо, "int main (int argc, char **argv)" есть же!

     
     
  • 8.190, Аноним (-), 19:11, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты сопоставить два события можешь Первое по умолчанию рмрф корень не трогает ... текст свёрнут, показать
     
     
  • 9.197, Аноним (-), 19:27, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Про старинную, бородатую модификацию патча Бармина rm -rf , обходящую preser... текст свёрнут, показать
     
     
  • 10.200, Аноним (-), 19:42, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ты то придумал офигенную проблему в данном тексте не глядя на this bug was fo... текст свёрнут, показать
     
  • 4.203, mikedld (?), 20:31, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Надеюсь, где-то там снаружи этот путь таки нормализуется, ибо "//" - это тот же "/", а проверка уже не работает.
     
     
  • 5.252, Аноним (-), 16:09, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Надеюсь, где-то там снаружи этот путь таки нормализуется, ибо "//" - это тот же "/", а проверка уже не работает.

    В rm проверка осуществляется по номеру inode.

     
     
  • 6.253, Аноним (-), 16:11, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Для сомневающихся параноиков:
    http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/rm.c#n326
    http://git.savannah.gnu.org/cgit/coreutils.git/tree/gl/lib/root-dev-ino.c#n29
    http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/remove.c#n457
    http://git.savannah.gnu.org/cgit/coreutils.git/tree/gl/lib/root-dev-ino.h#n30
     
  • 3.186, Аноним (-), 18:54, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> А вот был бы у него systemd...
    > и RemoveAllFilesInDir= в настройках юнита...

    Даже если не обращать внимание, что всякие Remove-директивы в systemd содержат проверки для защиты от случайного удаления корня...

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

     
  • 2.24, Аноним (-), 11:21, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вот вот. Ретрограды с инитскриптами идут на х...
     
     
  • 3.25, Аноним (-), 11:22, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в смысле идут за extundelete
     
     
  • 4.51, PnDx (ok), 12:02, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В ext* - без шансов при сколько-нибудь активной записи. Даже если немедленно дёрнуть питание или "xl destroy".
     
     
  • 5.176, Аноним (-), 18:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > В ext* - без шансов при сколько-нибудь активной записи. Даже если немедленно дёрнуть питание или "xl destroy".

    Как насчет photorec?

     
     
  • 6.207, Аноним (-), 22:20, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Как насчет photorec?

    Получишь свои фоты. Половинками.

     
  • 3.32, КО (?), 11:39, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    systemd не освобождает от писания скриптов.
    Просто теперь они не лежат в папке /etc/init.d (что правда и раньше было не обязательным), а размазаны равномерным слоем по всем файловым системам.
    Посмотрев на эволюцию того как их перефигачивают и перекладывают по желанию левой пятки мантейнера дистрибутива.
    На примера запуска того же tomcat в rhel7 и 7.1 понял смысл слова инновация.
     
     
  • 4.46, да я же (?), 11:52, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > На примера запуска того же tomcat в rhel7 и 7.1 понял смысл слова инновация.

    просветите? :) аж интересно стало

     
  • 4.68, Аноним (-), 12:46, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > systemd не освобождает от писания скриптов.

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

     
     
  • 5.70, Andrey Mitrofanov (?), 12:50, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >> systemd не освобождает
    > Ещё как освобождает, более того - можно выкинуть не только скрипты, но
    > и часть старого кода, отвечавшего за инициализацию сокетов, двойной форк и
    > прочий онанизм для демонов.

    http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/unix-daemon-design-m

    Спасибо, Лёня!

     
     
  • 6.146, Аноним (-), 17:59, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Спасибо, Лёня!

    Казалось бы, при чем тут Леня?

     
     
  • 7.149, Andrey Mitrofanov (?), 18:03, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Спасибо, Лёня!
    > Казалось бы, при чем тут Леня?

    Купил-жене-сапоги почему-то считает вышеуказанное заслугой s-d.  ++Место в профессии!!

     
     
  • 8.152, Аноним (-), 18:05, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Хм А более связно изъясняться вы можете ... текст свёрнут, показать
     
     
  • 9.161, Andrey Mitrofanov (?), 18:20, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Видеоурок что ли написать ... текст свёрнут, показать
     
     
  • 10.163, Аноним (-), 18:21, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, по несвязности речи вы этих дикторов без труда за пояс заткнете ... текст свёрнут, показать
     
     
  • 11.262, Аноним (-), 18:29, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А может это у тебя проблемы с пониманием ... текст свёрнут, показать
     
  • 5.245, КО (?), 09:25, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы строите утверждение на основе теории или посмотрели, как у адептов из RH все сделано?
     
  • 5.285, Аноним (-), 18:28, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >Ещё как освобождает, более того - можно выкинуть не только скрипты, но и часть старого кода, отвечавшего за инициализацию сокетов, двойной форк и прочий онанизм для демонов.

    вот за одно это поттера можно и нужно казнить!!!

     
  • 4.72, Аноним (-), 12:58, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Более того, он добавляет онанизма, но уже с сишным кодом. Взгляните например на херовы дебри БИНАРНЫХ генераторов юнитов.

    Или вот на это: https://www.linux.org.ru/news/opensource/11344526/page2?lastmod=1424734615450#

     
     
  • 5.74, Михрютка (ok), 13:04, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    stpcpy(stpcpy(stpcpy(mempcpy(ret, slice, e - slice), "-"), name), ".slice");

    "и эти люди запрещают мне ковыряться в носу!"(с)

     
     
  • 6.81, Crazy Alex (ok), 13:45, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Мать, как такое вообще пропустили? Голову же отбивать надо
     
     
  • 7.111, Аноним (-), 16:56, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Глупым одминам, которые ничего кроме баша не видели в жизни - да, отбивает голову. Но по факту все правильно написано.
     
     
  • 8.147, Аноним (-), 18:00, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Crazy Alex неоднократно говорил, что он не программист, но мнение по ряду вопрос... текст свёрнут, показать
     
  • 6.103, llolik (ok), 15:30, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ... и тут я понял, что двух рук для facepalm-а мне мало
     
     
  • 7.106, 1 (??), 15:58, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://www.facepalm.su/wp-content/gallery/double-facepalm-1/quadruple_facepal
     
  • 6.209, Аноним (-), 22:30, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > "и эти люди запрещают мне ковыряться в носу!"(с)

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

    Скрипткидозники принципиально не проверяют ошибки, забивают на коды возврата и не могут себе вообразить что какая-то переменная может быть не установлена. А потом их скриптовая дрянь выносит полсистемы или что-нибудь ломает. Но свое же не пахнет, поэтому себе - скидки. Это ж не поттера за баги поливать. Себя то поливать не прикольно. Между тем, квалификация большинства скриптеров - ниже плинтуса.

     
     
  • 7.289, Аноним (-), 01:15, 29/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> "и эти люди запрещают мне ковыряться в носу!"(с)
    > А ты посмотри на исходники шелл портянок. Вон одни уже посмотрели. А
    > на самом деле такого г-на по чуланам довольно много.
    > Скрипткидозники принципиально не проверяют ошибки, забивают на коды возврата и не могут
    > себе вообразить что какая-то переменная может быть не установлена. А потом
    > их скриптовая дрянь выносит полсистемы или что-нибудь ломает. Но свое же
    > не пахнет, поэтому себе - скидки. Это ж не поттера за
    > баги поливать. Себя то поливать не прикольно. Между тем, квалификация большинства
    > скриптеров - ниже плинтуса.

    Здесь, к сожалению, всё правда. Про тот же set -u вообще мало кто слышал, а ведь в описанной в новости ситуации спасло бы...

     
  • 5.150, Аноним (-), 18:04, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Более того, он добавляет онанизма, но уже с сишным кодом. Взгляните например
    > на херовы дебри БИНАРНЫХ генераторов юнитов.

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


     
     
  • 6.155, Vkni (ok), 18:12, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если не знаешь сишки, работа со строками и указателями может показаться пугающей.
    > Но на самом деле, никакой магии там нет.

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

     
     
  • 7.158, Аноним (-), 18:16, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > За использование магических чисел - предварительно вычисленных длин строк должна полагаться смерть через матумбу.

    Сначала придется убить gcc, и заодно clang вместе с их авторами :)

     
     
  • 8.201, Vkni (ok), 20:09, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смерти через матумбу достойны очень многие И наличие конкретного идиотизма в cl... текст свёрнут, показать
     
     
  • 9.210, Аноним (-), 22:33, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И что характерно, умники типа Vkni отнюдь не собираются писать софт вместо тех, ... текст свёрнут, показать
     
     
  • 10.243, Vkni (ok), 09:08, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1 В clang е мне не нравятся файлы toolchain и т д Они определяют расположение ... текст свёрнут, показать
     
     
  • 11.256, Аноним (-), 17:39, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Мне в clang да и gcc много чего не нравится Но если быть реалистом - тулчейн на... текст свёрнут, показать
     
     
  • 12.287, Vkni (ok), 07:43, 27/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да, но это не подразумевает, что нужно плодить заведомое говно и хвалиться этим ... текст свёрнут, показать
     
  • 4.140, Аноним (-), 17:44, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вообще, освобождает. Но для этого надо изменить мышление с императивного на декларативное, делать пачку простых юнитов, зависящих друг от друга. Мейнтенерам же проще идти привычным путем, потому и получается шило на мыло. В дебиане такой же маразм, притом что стало даже хуже, чем в убунте с upstart.

    Более-менее правильное использование systemd я видел только в Arch.

     
     
  • 5.145, Аноним (-), 17:58, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вообще, освобождает. Но для этого надо изменить мышление с императивного на декларативное, делать пачку простых юнитов, зависящих друг от друга.

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

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

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

     
     
  • 6.148, Аноним (-), 18:03, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В остальном юниты systemd - очередной маргинальный скриптовый nih-язык

    Дальше можно не читать. Кому интересно мнение человека, который демонстрирует вопиющую неграмотность в тех вопросах, о которых рассуждает?

     
     
  • 7.157, Аноним (-), 18:14, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Дальше можно не читать. Кому интересно мнение человека, который демонстрирует вопиющую
    > неграмотность в тех вопросах, о которых рассуждает?

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

    А что, вы не считаете синтаксис systemd скриптовым языком? А каким? Компилируемым? Или вы не считаете его языком? ;)

     
     
  • 8.165, Аноним (-), 18:24, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В systemd язык конфигурации, а не язык программирования Языком программирования... текст свёрнут, показать
     
     
  • 9.168, Аноним (-), 18:28, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пожалуйста, перестаньте употреблять термины, неизвестные ветеранам юникс-админис... текст свёрнут, показать
     
     
  • 10.184, Аноним (-), 18:52, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Хахаха - С ветеранами вообще разговор отдельный Моя практика показывает, чт... текст свёрнут, показать
     
     
  • 11.189, Аноним (-), 19:10, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Я даже знаю, как он это оправдал Каждый компонент должен решать только одну ... текст свёрнут, показать
     
     
  • 12.204, Аноним (-), 20:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Я не спрашивал - Но через месяц он там уже не работал ... текст свёрнут, показать
     
  • 11.242, freehck (ok), 09:04, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    К сожалению, в большинстве случаев ddos тюнингом ядра не лечится, а надо именно ... текст свёрнут, показать
     
     
  • 12.254, Аноним (-), 16:26, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Когда не лечится - тогда и покупается Ту пукалку DDos-ом-то назвать - большая п... текст свёрнут, показать
     
  • 12.269, Аноним (-), 23:23, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Смотря что под DDoS понимать Если крутой флуд, когда тебе забили канал в полку ... текст свёрнут, показать
     
  • 8.167, Аноним (-), 18:26, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Знание уровня вашей некомпетентности - это тоже знание, да Начнем с того, что... текст свёрнут, показать
     
  • 6.151, Аноним (-), 18:04, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смысл примерно в том же, в чем преимущество ООП/ООД перед простынями последовательного кода в крупных проектах.

    Нужно это далеко не всем, наверное, даже меньшинству, и мне непонятно, зачем systemd насильно запихивают во все дыры. Но вот в CoreOS, совместно с fleet, получается прекрасный инструмент работы с кластером.

     
     
  • 7.153, Аноним (-), 18:06, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Нужно это далеко не всем, наверное, даже меньшинству, и мне непонятно, зачем
    > systemd насильно запихивают во все дыры.

    Наверное, потому что все, кроме этого меньшинства, глубоко параллельно, что там внутри инита.

     
     
  • 8.160, Аноним (-), 18:19, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Незаметно, чтобы было параллельно - каждое упоминание systemd порождает очередну... текст свёрнут, показать
     
     
  • 9.173, Аноним (-), 18:33, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я вам скажу по секрету, что человек может спокойно использовать дистрибутив с sy... текст свёрнут, показать
     
  • 6.211, Аноним (-), 22:34, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > хуже? А тем, что инитскипт можно собрать в один файл, и
    > весь скрипт, все его действия, будут перед глазами. В шелле нет
    > сотни скрытых параметров, как в systemd,

    Конечно, поэтому в портянке на 5 кило кода такие упыри пропишут параметры "по всей площади". Очень удобно выколупывать пути и прочая по всем пяти килобайтам...

     
  • 5.154, Аноним (-), 18:10, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В дебиане такой же маразм, притом что стало даже хуже, чем в убунте с upstart.

    Любовь к костылям не проходит за полгода. Это нужно полностью перестраивать систему мышления, отказываться от квази-"юниксовой" идеологии "зачем думать, читать маны, это же можно решить добавлением очередного скрипта". Может, лет эдак через пять пойдут какие-то положительные изменения.

     
     
  • 6.166, Andrey Mitrofanov (?), 18:24, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> В дебиане такой же маразм, притом что стало даже хуже, чем в убунте с upstart.
    >Это нужно полностью перестраивать систему
    > мышления, отказываться от квази-"юниксовой" идеологии "зачем думать, читать маны, это
    > же можно решить добавлением очередного скрипта".

    ""Решим все Ваши проблемы. Промыванием мозгов клизмой."" --Секта s-d.

    > Может, лет эдак через пять пойдут какие-то положительные изменения.

     
     
  • 7.175, Аноним (-), 18:34, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ""Решим все Ваши проблемы. Промыванием мозгов клизмой."" --Секта s-d.

    Нет, простите, Ваших проблем никто не решит. Нельзя промыть то, чего нет))

     
  • 5.250, КО (?), 10:23, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    У языков 4го поколения тоже есть свои недостатки.
    Да декларативное программирование проще - ибо за все отвечает думатель, который внутре.
    Но порой оказывается, что он тоже не идеален и не всемогущ.
    И если задачи чуть выходят за ограниченный заранее круг, то все приходится возвращаться к предыдущему поколению.
     
  • 3.119, Аноним (-), 17:31, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > вот вот. Ретрограды с инитскриптами идут на х...

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

     
     
  • 4.156, Аноним (-), 18:14, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Просто программист - не профессия а сексуальная ориентация. Противоестественная. Кто бы
    > болванов научил простейшему скрипт-программированию. Но нет, это же мааааааагия!

    А уж если человек с трудом освоил костыляние на шелле - все, он мегахакер, супер-программер и вообще элита, осваивать нормальные ЯП считает ниже своего достоинства. При виде работы с указателями в сях впадает в истерику и, аки Милонов, требует срочно запретить "блобы" (при то, что без блобоядра и блобоинтерпретатора его мега-скрипты не запустятся, он, очевидно, не в курсе).

     
  • 4.212, Аноним (-), 22:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Просто программист - не профессия а сексуальная ориентация. Противоестественная. Кто бы
    > болванов научил простейшему скрипт-программированию. Но нет, это же мааааааагия!

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

     
     
  • 5.290, Аноним (-), 01:33, 29/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не пойдут ни разу Вместо кривых скриптов будут непродуманные юниты, вот и вся р... текст свёрнут, показать
     
  • 3.205, Аноим (?), 21:46, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я думаю, systemd тоже полон сюрпрайзов, о которых только предстоит узнать
     
     
  • 4.247, Andrey Mitrofanov (?), 09:33, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я думаю, systemd тоже полон сюрпрайзов, о которых только предстоит узнать

    Уже скоро. Релиз Debian-а близится. Ждём оползней и обрушений...

     
     
  • 5.270, Аноним (-), 23:25, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Уже скоро. Релиз Debian-а близится. Ждём оползней и обрушений...

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

     
  • 2.38, Zenitur (ok), 11:44, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не удивлюсь если ошибку специально добавили пару месяцев назад, чтобы после обнаружения заявить "вот видите какй sysvinit плохой! А вы ещё не хотите переходить на RHEL/CentOS 7!".
     
     
  • 3.108, Аноним (-), 16:05, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там вообще-то upstart.
     
     
  • 4.162, Аноним (-), 18:20, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Там вообще-то upstart.

    А толку от этого upstart, если все равно все через скрипты работает?
    Такие инциденты наводят на мысль, что более правилен подход OpenRC - полный отказ от совместимости с init-скриптами (правда, это стало одной из основных причин его провала в дебиане).

     
     
  • 5.214, Аноним (-), 22:40, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Такие инциденты наводят на мысль, что более правилен подход OpenRC - полный
    > отказ от совместимости с init-скриптами

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

     
  • 4.206, Аноим (?), 21:47, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Там вообще-то upstart.

    Да дрогнула у них рука в свое время полноценно апстарт впилить

     
  • 4.213, Аноним (-), 22:39, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Там вообще-то upstart.

    Ну, понимаете, у некоторых людей всегда во всех бедах жи^W либера^W аген^W, пардон, Поттеринг виноват :). Совок всегда остается совком.

     
  • 4.249, КО (?), 10:09, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В 7ке Systemd, а вот в 6ке Upstart. Вам и написали, что это была рекламная акция демонстрирующая преимущества systemd. Вот если бы там написали
      ExecStartPost=-/bin/bash -c "rm -rf %I/*"
    Этого все бы сработало на ура.
     
  • 2.66, Аноним (-), 12:44, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Дык! А сколько баттхёрта было, когда у идиотов даже не отняли, а лишь серьёзно затруднили возможность прострелить себе ногу...
     
     
  • 3.177, Аноним (-), 18:41, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Дык! А сколько баттхёрта было, когда у идиотов даже не отняли, а лишь серьёзно затруднили возможность прострелить себе ногу...

    У многих баттхертящих вообще инитом svchost.exe :)

     
     
  • 4.215, Аноним (-), 22:41, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > У многих баттхертящих вообще инитом svchost.exe :)

    Вам бы так хотелось думать, но как видим - придется обломаться.

     
  • 4.231, анончик (?), 23:27, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Wininit.exe же!
     
     
  • 5.291, Аноним (-), 01:37, 29/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Wininit.exe же!

    Про SMSS.EXE как-то даже упоминать неудобно.

     
  • 2.105, Anonymus (?), 15:42, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >А вот был бы у него systemd...

    У всех бы похерилось? )

     
  • 2.141, анончик (?), 17:50, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А вот был бы у него systemd...

    Да, это еще один хитрый пиар-ход Systemd. Мол "в системд такого бы не произошло".

     
     
  • 3.159, Аноним (-), 18:18, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, это еще один хитрый пиар-ход Systemd. Мол "в системд такого бы не произошло".

    Ждем на бис в дебиане и генте!

     

     ....большая нить свёрнута, показать (107)

  • 1.2, anonymous (??), 10:47, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Facepalm. Уныние и безысходность...
     
  • 1.3, bav (ok), 10:50, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Надо было переходить на systemd еще в шестерке!
     
  • 1.4, Аноним (-), 10:51, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Если есть платная поддержка, то наверно можно обратиться и они будут обязаны хоть из параллельной вселенной похеренные данные достать.
     
     
  • 2.50, Имя (?), 12:01, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это тестовый релиз.
     
  • 2.58, Аноним (-), 12:24, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ничего тебе RH не должен, почитай их условия представления услуг.
     

  • 1.5, тигар (ok), 10:53, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    архисекурный редхат. только с rm это они зря, нужно dd из рандома юзать.
     
     
  • 2.11, Аноним (-), 11:00, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Причём тут RHEL?
     
     
  • 3.14, anonimous (?), 11:05, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так ошибка в том патче, что они накатили.
     
     
  • 4.17, puresaredager (?), 11:06, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    При том, что какой-то негодяй тока что своё сообщение стёр
     
  • 2.97, YetAnotherOnanym (ok), 14:47, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    dd из рандома - это кустарщина и радиолюбительство. солидные люди пользуются wipe.
     
  • 2.216, Аноним (-), 22:42, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > архисекурный редхат.

    А вот и эксперты по балабо^W безопасности подоспели. Крутой гуру-безопасник - Тигар. Получил 100500 долларов на pwn2own, по любому.


     
     
  • 3.239, тигар (ok), 04:20, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >> архисекурный редхат.
    > А вот и эксперты по балабо^W безопасности подоспели. Крутой гуру-безопасник - Тигар.
    > Получил 100500 долларов на pwn2own, по любому.

    сильно комплексуешь по этому поводу, детка? хочешь об этом поговорить, пупсик?;)

     
     
  • 4.257, Аноним (-), 17:44, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > сильно комплексуешь по этому поводу, детка? хочешь об этом поговорить, пупсик?;)

    Да не, просто что-то никак не могу найти тебя в списке призеров, наверное я что-то делаю не так. Наверное надо другой список изучать - например, участников Специальной олимпиады :). Вот там ты точно будешь на призовых местах.

     
     
  • 5.265, тигар (ok), 19:19, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> сильно комплексуешь по этому поводу, детка? хочешь об этом поговорить, пупсик?;)
    > Да не, просто что-то никак не могу найти тебя в списке призеров,
    > наверное я что-то делаю не так. Наверное надо другой список изучать
    > - например, участников Специальной олимпиады :). Вот там ты точно будешь
    > на призовых местах.

    а до тебя, детонька, или сразу после? ответь, это очень важно.

     

  • 1.7, Роман Инфлянскас (?), 10:57, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А вот в fish shell так не сработало бы. И это хорошо.
     
     
  • 2.135, й (?), 17:40, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже пользователь fish. Но ни разу не видел скрипты на нем, по-моему, писать инит-скрипт на fish чуть менее бесперспективно, чем на csh, т.е. всё-таки плохая идея.

    Другой вопрос -- то, что systemd, да и апстарт, должны были избавить от sh-портянок в инит-файлах. Во-первых, в rh6 этого всего ещё нет (я в курсе про апстарт унутре, но апстарт-скрипт ему не скормить). Ну, а во-вторых, программисты на шелле таки не освоили systemd и теперь дергают свои шелл-портянки оттуда.

     
     
  • 3.143, й (?), 17:52, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, и в-третьих. Пару лет назад использовали мы в продакшне сквид на centos в довольно объёмных инсталляциях. Упёрлись в то, что родной из родных реп -- использовать нельзя. Так что ошибка эпичная, но что всех в реальности затрагивает родной сквид из беты прошлой мажорной ветки rhel -- тоже история сомнительная.
     

  • 1.13, Аноним (13), 11:04, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скажите нубу, вот зачем нужно было дописывать после переменной /* ?
     
     
  • 2.19, derfenix (ok), 11:16, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Затем, чтобы удалить все файлы в директории, но не саму директорию
     
     
  • 3.29, nib (?), 11:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не хочу показаться занудой, но если нужно было удалить только все файлы, то ключ -r лишний
     
     
  • 4.35, der_FeniX (?), 11:42, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > не хочу показаться занудой, но если нужно было удалить только все файлы,
    > то ключ -r лишний

    файлы и директории удалить. Думал и так понятно

     
     
  • 5.192, Аноним (-), 19:16, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > файлы и директории удалить. Думал и так понятно

    Но зачем удалять подкаталоги? Там же их быть не должно, по определению. А если и есть - значит, не просто так, а потому, что кто-то их специально создал. Вот пусть он и удаляет.

     
  • 3.33, Нуб (?), 11:40, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А какой смысл в пустой директории?
     
     
  • 4.36, derfenix (ok), 11:43, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А если подумать?
     
  • 3.39, Нуб (?), 11:45, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Затем, чтобы удалить все файлы в директории, но не саму директорию

    Т.е. оставлять пустую директорию архиважно? Как надпись "здесь был вася"?

     
     
  • 4.42, derfenix (ok), 11:48, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Затем, чтобы удалить все файлы в директории, но не саму директорию
    > Т.е. оставлять пустую директорию архиважно? Как надпись "здесь был вася"?

    А ты предлагаешь каждый раз перед записью в файл проверять существует ли путь до нег?Или удалять директорию, а потом сразу создавать ее и выставлять права?

     
     
  • 5.49, Нуб (?), 12:00, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> Затем, чтобы удалить все файлы в директории, но не саму директорию
    >> Т.е. оставлять пустую директорию архиважно? Как надпись "здесь был вася"?
    > А ты предлагаешь каждый раз перед записью в файл проверять существует ли
    > путь до нег?Или удалять директорию, а потом сразу создавать ее и
    > выставлять права?

    А лучше надеяться на правильное содержимое критической переменной?

     
     
  • 6.52, derfenix (ok), 12:02, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В данном случае они просто тупо скопипастили кусок кода не проверив ничего, в этом вся проблема. К вопросу удаления содержимого папки это вообще не имеет отношения.
     
     
  • 7.54, Нуб (?), 12:07, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В данном случае они просто тупо скопипастили кусок кода не проверив ничего,
    > в этом вся проблема. К вопросу удаления содержимого папки это вообще
    > не имеет отношения.

    Отсюда делаю вывод - лучше "rm -fr $VAR/*" не писать.

     
     
  • 8.55, derfenix (ok), 12:11, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А лучше бы понял, что если уж копипастишь, то проверяй 7 раз, прежде, чем в рели... текст свёрнут, показать
     
     
  • 9.121, Аноним (-), 17:32, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Надо к этому стремиться, ёбто Тесты проводить и программить с умом А не как бы... текст свёрнут, показать
     
  • 6.217, Аноним (-), 22:45, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А лучше надеяться на правильное содержимое критической переменной?

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

     
  • 2.20, АНГЫВНАГЫНВАШЩ (?), 11:17, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > зачем нужно было дописывать после переменной /*

    Чтобы удалить все файлы в данном каталоге.

    КО

     

  • 1.15, Аноним (-), 11:06, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эх, Семен Семеныч..
     
  • 1.16, клоун (?), 11:06, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Я смотрю, удаление всех файлов на диске при перезапуске программы становится всё более модным.
     
     
  • 2.218, Аноним (-), 22:47, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я смотрю, удаление всех файлов на диске при перезапуске программы становится всё
    > более модным.

    Да не сцы, я видел виндовую программу, рекурсивно выносившую весь C:\ еще 10 лет назад. Правда почему-то никто из юзеров не жаловался.

     

  • 1.18, Аноним (-), 11:10, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    bumblebee #2 :D

    На внимательность:
    "rm -rf /usr /lib/nvidia-current/xorg/xorg"

    https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cd

     
     
  • 2.22, Ilya Indigo (ok), 11:18, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это уже №3.
     
     
  • 3.26, Аноним (-), 11:22, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Что пропустил?
     
     
  • 4.40, soarin (?), 11:47, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    steam
     
     
  • 5.56, derfenix (ok), 12:13, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > steam

    Яндекс тоже отличился в этом плане, хоть и под оффтопиком.

     

  • 1.23, Аноним (-), 11:20, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    rm -rf злейший враг линуксоидов.
     
     
  • 2.27, Ilya Indigo (ok), 11:23, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > rm -rf злейший враг линуксоидов.

    rm -rf /*

     
  • 2.60, userd (ok), 12:33, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +7 +/
    нет.
    есть и другие способы "выстрелить себе в ногу".
    но это всё внешние по отношению к линуксоидам факторы.

    а злейший враг - он, как обычно, в голове.

     
  • 2.64, sprutos (ok), 12:43, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    злейший враг линуксоида - идиотизм. в данном случае других "знатных линуксоидов"
     

  • 1.28, Аноним (-), 11:25, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    почему нет команды удаления показывающей сколько файлов и каталогов удаляется и спрашивающей подтверждение? Понятно что в этом случае она бесполезна, хотя бы от ошибок в консоли уберегла бы.
     
     
  • 2.30, nib (?), 11:38, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    rm -Iv
     
  • 2.31, pkdr (ok), 11:39, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Потому, что опция -f команды rm предназначена для того, чтобы удалять файлы ничего не спрашивая. Без неё всё спрашивается.

    Всегда ваш Капитан.

     
     
  • 3.292, Аноним (-), 01:43, 29/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому, что опция -f команды rm предназначена для того, чтобы удалять файлы
    > ничего не спрашивая. Без неё всё спрашивается.
    > Всегда ваш Капитан.

    Товарищ Капитан, это не Windows, здесь удаление по умолчанию работает по-другому!

    (если, конечно, заботливый дистростроитель не включил rm -i в качестве алиаса для rm по умолчанию — привет, Красная Шапочка!)

     

  • 1.37, Михрютка (ok), 11:44, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    https://bugzilla.redhat.com/show_activity.cgi?id=1102343
    отличная строчка в резюме ящетаю.

    [code]
    bash-4.1$ cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 6.6 (Santiago)
    bash-4.1$ rpm -q squid
    squid-3.1.10-29.el6.x86_64
    bash-4.1$ grep -i squid_pidfile_dir /etc/rc.d/init.d/squid
    bash-4.1$ grep -A3 -i restart\(\) /etc/rc.d/init.d/squid
    restart() {
    stop
    start
    }
    --
    condrestart() {
    [ -e /var/lock/subsys/squid ] && restart || :
    }
    [/code]

    откуда эти инициативные идиоты вообще взяли етот $SQUID_PIDFILE_DIR???

     
     
  • 2.44, Аноним (-), 11:51, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> В поставляемом в составе тестового выпуска Red Hat Enterprise Linux 6.7..
    >> bash-4.1$ cat /etc/redhat-release
    >> Red Hat Enterprise Linux Server release 6.6 (Santiago)
     
     
  • 3.48, Михрютка (ok), 11:58, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>> В поставляемом в составе тестового выпуска Red Hat Enterprise Linux 6.7..
    >>> bash-4.1$ cat /etc/redhat-release
    >>> Red Hat Enterprise Linux Server release 6.6 (Santiago)

    я тебе гарантирую, что и в 6.7 инит скрипт сквида тоже не предусматривал $SQUID_PIDFILE_DIR, пока этот ретивый чех его туда не вставил.

     
     
  • 4.77, Аноним (-), 13:13, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Имя репортера - испаноязычное, ты с мейнтейнерам путаешь.
     
     
  • 5.109, Аноним (-), 16:05, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Имя репортера - испаноязычное, ты с мейнтейнерам путаешь.

    Не, а кто реально этот rm вставил, если даже мейнтейнер правильный патч сразу нарисовал?

     

  • 1.41, PnDx (ok), 11:47, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Грабли rm давно пора снабдить более удобной ручкой.
    В смысле, настройками области видимости (типа --one-file-system), владельца и глубины сверху/снизу. И не надо тыкать в find - ну не будут так выписывать в большинстве случаев.

    Иначе грабли так и продолжат бить даже сравнительно осторожных, типа эпичного "rm -rf /usr /lib/nvidia-current/xorg/xorg". Ну и вспомнить сюрприз в старых фрюхах, когда "rm *" захватывал '.' и '..'. А чо? WildCard же...

     
     
  • 2.43, Михрютка (ok), 11:51, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    >Грабли rm давно пора снабдить более удобной ручкой.

    в руках идиота даже палочка от эскимо смертельно опасна

     
     
  • 3.107, Аноним (-), 16:02, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > в руках идиота даже палочка от эскимо смертельно опасна

    А в руках некоторых идиотов опасность может представлять даже само эскимо.

     
     
  • 4.219, Аноним (-), 22:48, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > А в руках некоторых идиотов опасность может представлять даже само эскимо.

    Так, блин, у програмеров написание скриптов сроду считалось непочетной и грязной работой для субъектов с низким IQ. Ну вот и достается всем это стремное эскимо...

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

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

     
     
  • 3.62, pkdr (ok), 12:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +13 +/
    А какая есть лучшая практика? Реестр от укуренных индусов из M$? И если понимать, как устроен компьютер, то да, всё, что содержит информацию есть файл.

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

     
     
  • 4.110, клоун (?), 16:16, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Задача решается с использованием примитивов синхронизации межпроцессного взаимодействия, которые должны быть частью API. Примитивов.
     
     
  • 5.112, Аноним (-), 16:58, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Задача решается с использованием примитивов синхронизации межпроцессного взаимодействия, которые должны быть частью API. Примитивов.

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

     
     
  • 6.133, клоун (?), 17:40, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Иными словами, вы считаете необходимым в угоду концепции "всё есть файл" заменить все функции 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. Логично, если она будет сразу запрашивать то, что ей нужно, а не создавать ещё один уровень абстракций в виде файлов, наличие и отсутствие которых будет как то интерпретироваться.

     
  • 6.222, Аноним (-), 22:53, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > При таком решении теряется главное преимущество концепции "всё есть файл" — универсальность.

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

     
  • 4.116, Аноним (-), 17:25, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Реестр от укуренных индусов из M$?

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

     
     
  • 5.221, Аноним (-), 22:52, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > как в простыню на bash, так и юнит-файл systemd.

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

     
  • 5.271, Аноним (-), 23:29, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Хранение конфигов в иерархической базе ключ-значение - сама по себе вполне здравая идея.

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

     
  • 3.65, Аноним (-), 12:43, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Торвальдс родился в 1969 и учился в конце 80-ых - начале 90-ых.
     
     
  • 4.123, Аноним (-), 17:34, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Торвальдс родился в 1969 и учился в конце 80-ых - начале 90-ых.

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

     
  • 3.78, PnDx (ok), 13:20, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    var run 8212 вполне себе неплохое соглашение, ещё со времён SysV Грабли... текст свёрнут, показать
     
     
  • 4.115, Аноним (-), 17:24, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >попробуйте настроить автоснапшоты с соляре

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

     
     
  • 5.129, PnDx (ok), 17:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Одна команда. Не понял в чём проблема?

      В 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>

     
     
  • 6.223, Аноним (-), 22:54, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    К счастью, Поттеринг не любит XML, в отличие от санок и прочих огрызкопи...сов.
     
  • 3.89, Аноним (-), 14:09, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >но не сегодня

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

     
  • 3.114, Аноним (-), 17:12, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Файл нужен чтобы знать, какому процессу посылать сигнал остановки Начхать юникс... текст свёрнут, показать
     
     
  • 4.117, Аноним (-), 17:25, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В наше время всегда побеждает наихудшее решение. ВСЕГДА.
     
  • 4.178, Аноним (-), 18:44, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И что самое странное - даже после этого у него есть приспешники.

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

     
  • 3.127, Eugene Ryabtsev (?), 17:35, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Грабли в том, что в операциях с FS нет DELETE_ON_EXIT без разыменования файла (что примечательно, в IPC всё точно наоборот).
     

  • 1.45, DeadLoco (ok), 11:52, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Извините, а в редхате не принято запускать сервисы от непривилегированых пользователей? Достаточно же воткнуть в начале скрипта [code]su squid[/code]и проблема рассосется, как класс...
     
     
  • 2.57, _KUL (ok), 12:18, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не, не получится! Будет еррор тогда при рестарте в лог сыпаться, что пермишен денайд :)
     
     
  • 3.76, DeadLoco (ok), 13:12, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скакова?
     
  • 3.118, Аноним (-), 17:27, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не, не получится! Будет еррор тогда при рестарте в лог сыпаться, что
    > пермишен денайд :)

    здрасьте, приехали. даже к портам <1024 можно привязывать процессы с non-root привилегиями, а уж отстроить разрешения на каталог - и вовсе как два пальца.

     
  • 2.85, Stax (ok), 13:56, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Сам сервис запускается от пользователя squid Но в данном случае речь про обвязо... текст свёрнут, показать
     
     
  • 3.90, Аноним (-), 14:13, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что скрипт старта сервиса это не мог бы сделать ? так и было сделано всегда.
    странно говорить о достижении systemd которое они подсмотрели в обычном sysv init..
     
     
  • 4.100, Stax (ok), 15:01, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > а что скрипт старта сервиса это не мог бы сделать ? так и было сделано всегда.

    Так он тут как раз так и делает :) С правами рута. Стирает pid-файл. С непредсказуемым эффектом.

    В случае же systemd код с правами рута только создает стандартные каталоги/файлы согласно инструкциям из tmpfiles.d, а дальше код сервиса уже можно запускать от пользователя.

    Впрочем, в случае сквида даже из systemd он запускается из под рута и меняет пользователя уже сам. Но тут уж ничего не поделаешь. Видимо, сам squid не рассчитан на запуск сразу из под непривилегированного пользователя.

     
     
  • 5.102, Аноним (-), 15:14, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> а что скрипт старта сервиса это не мог бы сделать ? так и было сделано всегда.
    > Так он тут как раз так и делает :) С правами рута.
    > Стирает pid-файл. С непредсказуемым эффектом.
    > В случае же systemd код с правами рута только создает стандартные каталоги/файлы
    > согласно инструкциям из tmpfiles.d, а дальше код сервиса уже можно запускать
    > от пользователя.

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

     
     
  • 6.128, Stax (ok), 17:36, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так делали, но это приводит к потенциальным проблемам типа возникшей тут.

    В случае systemd это больше не требуется, т.к. механизм tmpfiles позволяет создавать каталоги и прочее в момент запуска сервиса средствами systemd по декларативному описанию в конфиге. Напр.

    $ cat /etc/tmpfiles.d/named.conf
    d /run/named 0755 named named -

    Что, очевидно, безопаснее и меньше риска допустить ошибку.

     
     
  • 7.138, Аноним (-), 17:42, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > $ cat /etc/tmpfiles.d/named.conf
    > d /run/named 0755 named named -
    > Что, очевидно, безопаснее и меньше риска допустить ошибку.

    И кто помешает написать там:
    > d $SQUID_PIDFILE_DIR 0755 named named -

    и получить те же грабли только в профиль?

     
     
  • 8.164, Stax (ok), 18:23, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Очевидно, что при декларативном синтаксисе - в отличии от bash-скрипта - очень п... текст свёрнут, показать
     
  • 2.264, playnet (ok), 19:13, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А для su требуется рутовый пароль. И при рестарте сервера он не загрузится, ибо "su же".
    В общем, бред какой-то. И да, для управления сервисами нужен рут.
     
     
  • 3.275, DeadLoco (ok), 00:05, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А для su требуется рутовый пароль

    Вы, вероятно, удивитесь, но если скрипт запустить от рута, то выполнение в нем 'su squid' не потребует никаких паролей.

     

  • 1.61, Аноним (-), 12:37, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Репортер предложил кривой патч, при этом он врёт, что
    > > The "rm -rf $SQUID_PIDFILE_DIR/*" was already part if the original upstream script.

    И ответ мейнтейнера:

    > As far as I see not anywhere in the git history, that means since 2004. I suspect you are using different sources than those from RHEL6.

    Выводы?

     
     
  • 2.69, Andrey Mitrofanov (?), 12:46, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>are using different sources than those from RHEL6.
    > Выводы?

    ""Блу-алерт! В багзтле рх замечена контрафактная el6.7. рх пердуперждает: только  аутентиная 7.1, только хардкор. Проверяйте цифровые подписи, чеки сохраняйте.""

     

  • 1.63, Аноним (-), 12:42, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Просто ещё одна иллюстрация почему systemd и декларативное описание инициализации рулят.
     
     
  • 2.67, Аноним (-), 12:45, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Его гнобят не за это.
     
     
  • 3.80, Tav (ok), 13:41, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –6 +/
    И за это тоже, и за все, что "не так". Просто некоторые разработчики и админы чувствуют в нем угрозу обесценивания некоторых накопленных ими ранее знаний и опыта, воспринимая таким образом внедрение systemd, как атаку на себя лично.
     
     
  • 4.91, angra (ok), 14:18, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Я тебе сейчас поведаю страшную тайну. Возня с инит скриптами это в среднем даже не 1% от времени сисадмина. Так что угроза существует разве что в воспаленном воображении детишек, мнящих себя умными только по причине следования за модой.
     
     
  • 5.170, Tav (ok), 18:29, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Даже если непосредственной возни 0.01%, понимание того, как это работает, нужно постоянно.

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

     
  • 5.224, Аноним (-), 22:57, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Я тебе сейчас поведаю страшную тайну. Возня с инит скриптами это в
    > среднем даже не 1% от времени сисадмина.

    А вот это очень зависит от админов и прочая. Какой нибудь аутсорсер или фрилансер может и не заниматься протягиванием витухи в ДЦ, а вот настройку серверов делать поточно-конвейерным методом. И вот там все эти заморочки с кучей левого кода, 10 лет назад написанного кулсисопом, после возлияний, на одном дыхании - даром не упали. Потому что окажется что кулсисоп 3 года назад уволился, а если б и не уволился - понятия не имеет что он там 10 лет назад написал, как следует буханув. Зато остальным когда встает вопрос понять что и почему не работает или где это переконфигурируется - совсем не прикольно.

     
     
  • 6.235, myhand (ok), 23:51, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Зато остальным когда встает вопрос понять что
    > и почему не работает или где это переконфигурируется - совсем не прикольно.

    И что, systemd еще и проблему с пьянством решает?  Или с жадностью
    работодателей и наймом школоты, не слыхавшей о документации работы?

    Бардак можно устроить и на реально декларативном языке, а уж на
    той лапше что своим фанатам Леня навешал на уши - просто за милую душу.

     
     
  • 7.258, Аноним (-), 17:56, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > И что, systemd еще и проблему с пьянством решает?  Или с жадностью

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

    > работодателей и наймом шкoлоты, не слыхавшей о документации работы?

    Удачи тебе в поиске документации на хотя-бы инит скрипты из состава дебиана.

    > Бардак можно устроить и на реально декларативном языке

    Можно все. Даже написать пухлый и тормозной код на ассемблере. Но это будет неудобно.

     
     
  • 8.267, myhand (ok), 21:58, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так Вы все более напоминаете мне клоунов, которые разные светозвзоры рекламиру... текст свёрнут, показать
     
     
  • 9.272, Аноним (-), 23:46, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Так я и не настаиваю на полном геноциде староверов Сослать на Колыму W какое-ни... текст свёрнут, показать
     
     
  • 10.277, myhand (ok), 01:11, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну еще-б впариватели разной живой воды на геноциде настаивали Цитированное вы... текст свёрнут, показать
     
  • 2.71, Andrey Mitrofanov (?), 12:54, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Просто ещё одна иллюстрация

    ..на тему, что продажи 7го EL-а не идут.

    > почему systemd и

     
  • 2.84, Crazy Alex (ok), 13:54, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Декларативное описание - рулит как минимум, пока не объявляется единственно вер... текст свёрнут, показать
     
     
  • 3.92, angra (ok), 14:21, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что SysV как-то запрещает писать init скрипты на любом языке?
    Ну вот например модуль для их создания на perl: https://metacpan.org/pod/Daemon::Control

     
     
  • 4.99, Crazy Alex (ok), 14:58, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Конечно не запрещает. Но по факту используется только шелл. Что логично - зоопарк здесь не нужен, но, с другой стороны, шелл уж больно уродлив и провоцирует кучу ошибок (что мы здесь и видим). Это во-первых.

    Во-вторых - инит должен предоставлять скриптам некий стандартный сервис - хоть работу с PID ту же, хоть события/зависимости, хоть ещё что. Это довольно неудобно делать, если движок скриптов не встроен в сам инит и практически невозможно - если таки использовать много языков.

    В-третьих - базовыые вещи вроде start/stop/restart со статически забитыми параметрами, зависимостей и т.п. всё-таки не должны требовать скриптов, здесь деклараций - более чем достаточно.

     
     
  • 5.130, Аноним (-), 17:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Уродлив не шелл, а такие писаки - вроде тебя - которые всех тонкостей не знают, ... текст свёрнут, показать
     
     
  • 6.171, Vkni (ok), 18:31, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Уродлив не шелл, а такие писаки - вроде тебя - которые всех
    > тонкостей не знают, но лезут писать скрипты.

    1. Shell устарел - в нём нет простой арифметики, проверки типов, алгебраических типов. С другой стороны, есть совершенно необходимая фича, присущая только Haskell'у и подобным - ленивость исполнения конвееров.

    2. Как несложно заметить, чем меньше тонкостей в языке, тем лучше - очередной C++ нам не нужен.

     
     
  • 7.241, Аноним (-), 05:09, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 1. Shell устарел - в нём нет простой арифметики, проверки типов, алгебраических
    > типов. С другой стороны, есть совершенно необходимая фича, присущая только Haskell'у
    > и подобным - ленивость исполнения конвееров.

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

    > очередной C++ нам не нужен.

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

     
     
  • 8.244, Vkni (ok), 09:09, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это нужно для замены bash а ... текст свёрнут, показать
     
     
  • 9.259, Аноним (-), 18:05, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Bash изначально - инструмент для генерации примитивного glue code между сишными ... текст свёрнут, показать
     
  • 6.181, Аноним (-), 18:47, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >  и мэйнтайненс сервисов?

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

     
     
  • 7.232, Аноним (-), 23:32, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ключики какие в системд на этот счёт?

    <sarcasm>Всё, чего нет в systemd, не нужно.</sarcasm>

     
     
  • 8.260, Аноним (-), 18:06, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не, не так Вот пусть такое и кодят под кастомные требования А запуск какого-ни... текст свёрнут, показать
     
  • 4.225, Аноним (-), 23:07, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А что SysV как-то запрещает писать init скрипты на любом языке?
    > Ну вот например модуль для их создания на perl: https://metacpan.org/pod/Daemon::Control

    Да, зашибись. А потом надо вон тот сервер перенастроить - ОПА! А там возьми и окажись брейнфак. Потому что прошлый админ любил лулзы и хотел проучить работодателя и вообще, не считал что в его творчестве должно быть просто разобраться. Теперь такое художество придется внятно обосновывать, а не лепить что попало где не надо.

     
     
  • 5.251, Аноним (-), 15:38, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В системд можно скрипт исполнить из юнита?
     
     
  • 6.261, Аноним (-), 18:09, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В системд можно скрипт исполнить из юнита?

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

     
     
  • 7.278, Аноним (-), 06:12, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть в сисвинит можно скрипты писать на любом языке. И админ обязательно напишет на брейнфаке 5 кило портянок назло руководству. А в системд можно выполнить любую программу, но никто и никогда не будет ничего писать на брейнфаке и вызывать из юнитов.
    Я правильно всё понял, ничего не упустил?
     
  • 3.169, Vkni (ok), 18:28, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А вообще - полагаю, что всерьёз рулил бы как  раз императив
    > на более вменяемом языке, чем шелл, и с хорошей библиотекой функций
    > для этого дела.

    Я не знаю такого языка. :-( Реально нужен микс из OCaml'а и Haskell'а - статическая типизация, максимально простая, лёгкая императивщина + модульность + возможность лёгкой ленивости (вместо конвееров). Плюс, возможность предварительной компиляции (если скорость нужна).

     
     
  • 4.226, Аноним (-), 23:09, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Реально нужен микс из OCaml'а и Haskell'а

    Кому нужен - тот пусть этим и занимается. Флаг ему в руки и барабан на шею.

     

     ....большая нить свёрнута, показать (28)

  • 1.75, Нанобот (ok), 13:12, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    такого рода косяки - обычное дело для тестовых сборок. где-то они мелкие, где-то катастрофичные. ничего такого, из-за чего анонимам стоит биться в истерике
     
  • 1.79, Tav (ok), 13:27, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > rm -rf $SQUID_PIDFILE_DIR/*

    Такая строчка — бомба замедленного действия. Все-таки sh страшный язык. Удобный, но страшный.

     
     
  • 2.124, Аноним (-), 17:34, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Такая строчка — бомба замедленного действия. Все-таки sh страшный язык. Удобный, но страшный.

    Будто бы написанная в systemd-блобе в виде strcpy(stpcpy(stpcpy(execcmd, "rm -rf "), getenv("SQUID_PIDFILE_DIR")), "/*") или где угодно на другом языке она была бы безопаснее...

     
     
  • 3.234, Tav (ok), 23:40, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не знаю, как это написано в systemd (не о нем речь), но конструировать сложные объекты (будь то пути, запросы, веб-страницы или что-то еще) путем конкатенации или подстановки строк неправильно и опасно (по крайней мере, когда речь идет не о сиюминутных скриптах, а о коде, который поддерживается долго). Язык должен предоставлять необходимые абстракции (в этом и заключается смысл ЯП: предоставление абстракций и средств для их построения).

    Ну вот пример (Racket):

    (build-path "a" "b" "c")
    #<path:a/b/c>

    (build-path "a" "/b" "c")
    build-path: absolute path cannot be added to a path

    (build-path "" "b" "c")      
    build-path: path element is an empty string

     
  • 2.131, Аноним (-), 17:38, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> rm -rf $SQUID_PIDFILE_DIR/*
    > Такая строчка — бомба замедленного действия. Все-таки sh страшный язык. Удобный,
    > но страшный.

    Страшен не шелл. Страшны недоучки и недоумки, которые со встроенным в башке noscript родились.

     
     
  • 3.236, Tav (ok), 23:57, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Практически невозможно никогда не допускать ошибок в коде. А вот своевременное выявление ошибок и ограничение их последствий должно обеспечиваться языком, системой и процедурами тестирования (здесь последние сработало, т. к. ошибка выявлена в тестовом выпуске).
     
  • 3.273, Аноним (-), 23:52, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Страшен не шелл. Страшны недоучки и недоумки, которые со встроенным в башке
    > noscript родились.

    Так скрипты инициализации какие-то такие и пишут в основном. Так. если на код глянуть.

     

  • 1.82, iZEN (ok), 13:53, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тесты интеграции не проводят чуть более, чем совсем. Любой залетевший дятел сможет учинить армагеддон в данном дистрибутиве. Теперь нет никаких сомнений в полезности раздробленности GNU/Linux и в экосистеме отличающихся дистрибутивов - локальные армагеддоны страшны только их почитателям.
     
     
  • 2.87, Stax (ok), 13:59, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Тесты интеграции не проводят чуть более, чем совсем.

    Проблему отловили *в тестовом выпуске* до релиза, попрошу заметить.

     
     
  • 3.227, Аноним (-), 23:10, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Тесты интеграции не проводят чуть более, чем совсем.
    > Проблему отловили *в тестовом выпуске* до релиза, попрошу заметить.

    Настоящие чукчи новость не читают :)

     
  • 2.96, IMHO (?), 14:37, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    так этоже ентерпрайз, и деньги улители и файлы с ними
     
  • 2.104, Аноним (-), 15:41, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно подумать, что бsdуны их проводят.

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

    Аналогично - для кеша того же сквида. Проблема усугубляется тем, что он не уходит в бэкграунд до полной инициализации своего кэша и вешает наxер ВЕСЬ процесс загрузки. и притом он стартует ДО ssh.

    И не надо пенять на инит - это конкретно рукожопие мейнтейнеров.

     
     
  • 3.120, Аноним (-), 17:31, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну ты и врун 8-) Детская ещё еравма видимо ...
     
     
  • 4.238, Аноним (-), 02:23, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А канделябром не желаете?

    http://svnweb.freebsd.org/ports/head/net/quagga/pkg-plist?r1=340714&r2=357282

     
  • 3.280, count0krsk (ok), 09:45, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я знал, я знал )))
    что бздя кривая, но чтоб настолько o_O
    А мне ещё не верили, что она в консоль вываливается после 2-3 миганий света и требует руками фиксить ФС.
    Кстати, кэш у сквида тогда тоже побился, спасибо что напомнили. Ждать пока он его проинициализирует надо было несколько минут.
     
  • 2.233, Аноним (-), 23:36, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > раздробленности GNU/Linux

    Ничего страшного, Леннарт и Ко. работают над устранением этой "проблемы".

     
     
  • 3.248, Andrey Mitrofanov (?), 09:39, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>GNU/Linux
    >Леннарт и Ко. работают над устранением этой "проблемы".

    Только одной из двух??

     

  • 1.83, Аноним (-), 13:54, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а это не проделки того-кого-нальзя-называть-в-приличном-обществе?
     
     
  • 2.101, Аноним (-), 15:09, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да похоже на то. Придумал себе псевдоним Fernando Lozano и запостил патчик, чтобы дискредитировать sysv. Я не совсем понял только как он смог преодалеть возражение мейнтейнера на то, что там такой переменной никогда не было.
     
  • 2.237, IMHO (?), 00:59, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    запилят rmrfd ?
     
     
  • 3.276, DeadLoco (ok), 00:11, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > запилят rmrfd ?

    модулем ядра

     

  • 1.86, Аноним (-), 13:57, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сначала по заголовку думал что труба, но из содержимого все стало ясно. С одной стороны - в продакшене не будешь рисковать и ставить тестинг, а с другой - очень тупая ошибка для рхел.
     
  • 1.88, iCat (ok), 13:59, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вообще - весьма круто. Достойно "поколения UnDo" - не проверять, не думать - только пробовать...
    Неужели это за пределами человеческого разума предугадать что будет происходить при отсутствии переменной?
    Или просто не модно стало думать прежде, чем запускать?
     
  • 1.94, Павел Самсонов (?), 14:28, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    У меня / ro, правда /home я теряю в этом случае :-)
     
     
  • 2.228, Аноним (-), 23:12, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > У меня / ro, правда /home я теряю в этом случае :-)

    А я откачу снапшот за 20 секунд и как будто ничего и не бывало. Мне так больше нравится.

     

  • 1.95, Аноним (-), 14:33, 24/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А кто может сказать что хранится в var run squid Никогда не пользовался squid ... текст свёрнут, показать
     
     
  • 2.98, Аноним (-), 14:48, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да они там укуренные просто. Ему говорят - нету в нашем скрипте такого! А он - есть, есть, сам видел, давайте в продакшн!
     
     
  • 3.229, Аноним (-), 23:12, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Да они там укуренные просто.

    Так другие скрипты почти и не пишут - считают ниже своего достоинства.

     
  • 2.139, Stax (ok), 17:43, 24/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А кто может сказать что хранится в /var/run/squid?
    > Никогда не пользовался squid и нет возможности глянуть.
    > Потому как такое удаление вызывает недоумение.

    Ничего, нет такого каталога. Это ошибка. В RHEL squid хранит свой pid в /var/run/squid.pid (во всяком случае, в EL6 и EL7).

     

  • 1.263, Аноним (-), 18:49, 25/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Раз любители системд уже непонятные баги притаскивают из нерелизнутых пакетов, то можно и им шпилю воткнуть. Вот у человека проблема с обсуждением vitus-wagner.livejournal.com/1071323.html . И системд тут конечно не при чём.
     
  • 1.266, DmA (??), 20:27, 25/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что  политики SELinux для Squida никакой нет что-ли?
     
     
  • 2.274, Аноним (-), 23:54, 25/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А что  политики SELinux для Squida никакой нет что-ли?

    Так это не Squid. Это "запуск Squid". Делается системой инициализации, под рутом. И прописывать системе инициализации политики за...шься, потому что там настройки меняют относительно часто и каждый раз еще и политики SELinux переписывать - большинство админов труба шатали.

     
     
  • 3.284, Stax (ok), 17:31, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На самом деле, нет явной проблемы с таким прописыванием (почему это нельзя ограничить то, что может скрипт запуска *конкретного* сервиса?). Просто раньше это было бы неудобно делать, т.к. при запуске bash-скрипта устанавливать контекст selinux несколько проблематично: в случае запуска /etc/init.d/squid, /usr/sbin/service squid и запуска этого скрипта из начального init'а контексты на сам скрипт были бы разные.

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

    См. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/

     

  • 1.279, Адекват (ok), 07:32, 26/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Да ладно, в линуксах это норма, взять хотя бы xargs:

    find / -type d -iname '*tmp' | xargs rm -rf

    Что будет, если ни одной директории найдено не будет :) ?

     
     
  • 2.281, count0krsk (ok), 12:23, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да ладно, в линуксах это норма, взять хотя бы xargs:
    > find / -type d -iname '*tmp' | xargs rm -rf
    > Что будет, если ни одной директории найдено не будет :) ?

    Надо для ключа -rf требовать ввод пароля руками, да всего делов. Но это не труЪ, поэтому софтостроители будут наступать на грабли года так до 2050го.
    А ещё лучше всё, что удалено через rf складывать в снапшот и по команде undelete откатывать всё обратно.

     
     
  • 3.282, Andrey Mitrofanov (?), 14:47, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Надо для ключа -rf требовать ввод пароля руками, да всего делов. Но

    И на shell-globbing, обязательно! А rm _вообще только по паспорту.

    > до 2050го.
    > А ещё лучше всё, что удалено через rf складывать в снапшот и

     
  • 3.286, Адекват (ok), 06:52, 27/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Надо для ключа -rf требовать ввод пароля руками, да всего делов. Но

    Вообще-то претензии были именно к xargs, поскольку у нее есть опция

    [code]
    --no-run-if-empty
           -r     If the standard input does not contain any nonblanks, do not run the command.  Nor‐
                  mally, the command is run once even if there is no input.  This option is a GNU ex‐
                  tension.
    [/code]

    Но по логике вещей она должна быть по умолчанию, вернее по умолчаню если на xargs ничего не подается, то он ничего не должен запускать, но при этом, для извращенцев должна быть опция --run-if-empty

     
     
  • 4.288, EHLO (?), 16:28, 27/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > run the command.  Nor‐
    >            
    >   mally, the command is run once even if there
    > is no input.  This option is a GNU ex‐
    >            
    >   tension.
    > [/code]
    > Но по логике вещей она должна быть по умолчанию, вернее по умолчаню
    > если на xargs ничего не подается, то он ничего не должен
    > запускать, но при этом, для извращенцев должна быть опция --run-if-empty

    Безотносительно этого зловещего флага, ты своей командой 'find / -type d -iname '*tmp' | xargs rm -rf' можешь снести любые файлы при благоприятных обстоятельствах.

     
  • 2.283, EHLO (?), 15:21, 26/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Да ладно, в линуксах это норма, взять хотя бы xargs:
    > find / -type d -iname '*tmp' | xargs rm -rf
    > Что будет, если ни одной директории найдено не будет :) ?

    В этом случае ничего не будет, попробуй еще.
    Команда рискованная, но по другой причине.

     

  • 1.294, sproot (ok), 04:27, 31/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Думаю, сначала надо cd $SQUID_PIDFILE_DIR делать, а потом, по коду возврата, принимать решение насчет rm.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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