Интересно!
Цель плейбуки привести файл в нужное состояние.
Верно ли я понимаю, что лучшим методом будет копировать этот файл из репы безусловно на хост, перезаписывая если такой уже есть?
Мне нужно обновить файл, если он в ожидаемом состоянии, иначе пропустить этот хост. Является ли антипаттерном проверка файла простым сравнением md5 с ожидаемым или всё-таки нет?
Как лучше в таком случае поступить?
1.1 добавлять можно, но при добавлении уже существующего fd получишь EEXIST; можно копировать fd, например через dup(), и тогда добавлять от каждого потока по своему (интересно, правда, где такое можно применить);
1.2 с удалением, думаю, такя же история как и с добавлением;
2) при одновременном ожидании события, получит событие только один поток (процесс, если унаследовал epoll fd, например при форке).
А почему @bugbountyruи @yooteamзабанены на хабре?
Всегда ли сообщение кратно двойному слову (4 байтам)?
Что если у меня 11 байт, всё равно указывать длинну в 3 двойных слова (12 байт)?
Ой! Точно. Наверное, не заметил.
Интересно, почему этого дистрибутива нет ни на DistroWatch, ни на wikipedia-странице Список_дистрибутивов_Linux?
можно что-нибудь и про Fedora CoreOS сказать : )
>Есть различные патчи безопасности для ядра, например, патчи PaX.
а PaX разве ещё жив?
https://pax.grsecurity.net/
Можно ли что-то другое схожее вместо лазера использовать с более высоким КПД?
А как работает оптоволокно, которое через океан фигачит?
Там, на мой наивный взгляд, тоже какой-то лазерок по трубкам светит достаточно далеко?
Скажем, засадить на луне солнечных батарей и потом лазером фигачить на землю?
Не видать его что-то в stty -a
man stty
:stop CHAR
CHAR will stop the output
susp CHAR
CHAR will send a terminal stop signal
Т.е. stop прекращает вывод, как-то обрубает весь stdout. Непонятно как.
А susp действительно посылает, только не stop, а tstop?
кажется, и у меня в убунте и у вас на скрине, в выводе `stty -a`, ^S — это стоп а ^Z — саспенд:
stop = ^S; susp = ^Z;
Почему? Наверное, в терминах stty обозначение susp равняется сигналу TSTP? Тогда что делает ^S?
Фактически посылается TSTP по ^Z:
$ perl -E '$SIG{TSTP}=sub{ say "here is STOP"}; $SIG{INT}=sub{ say "here is INT"}; sleep 999'
^Chere is INT
$ perl -E '$SIG{TSTP}=sub{ say "here is STOP"}; $SIG{INT}=sub{ say "here is INT"}; sleep 999'
^Zhere is STOP
Цель плейбуки привести файл в нужное состояние.
Верно ли я понимаю, что лучшим методом будет копировать этот файл из репы безусловно на хост, перезаписывая если такой уже есть?
А почему такая проверка может быть не очень хорошей идеей?
Как лучше в таком случае поступить?
Например, в качестве ивента можно передать EPOLLIN, что значит — файловый дескриптор готов к чтению.
#include <sys/epoll.h>
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
man7.org/linux/man-pages/man2/epoll_ctl.2.html
если все потоки работают с одним epoll fd, то
1.1 добавлять можно, но при добавлении уже существующего fd получишь EEXIST; можно копировать fd, например через dup(), и тогда добавлять от каждого потока по своему (интересно, правда, где такое можно применить);
1.2 с удалением, думаю, такя же история как и с добавлением;
2) при одновременном ожидании события, получит событие только один поток (процесс, если унаследовал epoll fd, например при форке).