В данном случае системный вызов execve сообщает ядру, что мы хотим запустить другой процесс
Неверно тут и в оригинале. execve не запускает другой процесс, а в том же процессе меняет текст программы на другой - считанный из файла.
смотрим `man execve`: > execve() executes the program referred to by pathname. This causes the program that is cur‐ rently being run by the calling process to be replaced with a new program, with newly initial‐ ized stack, heap, and (initialized and uninitialized) data segments.
и
> many attributes of the calling process remain unchanged (in particular, its PID)
@ru_vds, наверное runtime во фразе > The first step of writing a self-mutating program is being able to change the code at runtime
лучше перевести как-то вроде "на лету" чем в "среде исполнения". Здесь имеется ввиду что программа запущена и в процессе выполенения меняет себя. Это вот и есть ран тайм. Но не среда исполнения.
В вики пишут "время выполнения" что звучит хорошо. А ваша среда - это execution environment скорее.
Интересно!
Цель плейбуки привести файл в нужное состояние.
Верно ли я понимаю, что лучшим методом будет копировать этот файл из репы безусловно на хост, перезаписывая если такой уже есть?
Мне нужно обновить файл, если он в ожидаемом состоянии, иначе пропустить этот хост. Является ли антипаттерном проверка файла простым сравнением md5 с ожидаемым или всё-таки нет?
Как лучше в таком случае поступить?
А почему я не вижу res_query и res_send в выводе ltrace:
?
как-то не по-русски? мб "а затем выполнить .."?
Неверно тут и в оригинале. execve не запускает другой процесс, а в том же процессе меняет текст программы на другой - считанный из файла.
смотрим `man execve`:
>
execve() executes the program referred to by pathname. This causes the program that is cur‐ rently being run by the calling process to be replaced with a new program, with newly initial‐ ized stack, heap, and (initialized and uninitialized) data segments.
и
> many attributes of the calling process remain unchanged (in particular, its PID)
"выполнение" и сразу же "выполнять запись" - лучше мб - мы не можем писать в них. Но это уже стилистика.
@ru_vds, наверное runtime во фразе
> The first step of writing a self-mutating program is being able to change the code at runtime
лучше перевести как-то вроде "на лету" чем в "среде исполнения". Здесь имеется ввиду что программа запущена и в процессе выполенения меняет себя. Это вот и есть ран тайм. Но не среда исполнения.
В вики пишут "время выполнения" что звучит хорошо. А ваша среда - это execution environment скорее.
https://ru.wikipedia.org/wiki/Среда_выполнения
А почему @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
Цель плейбуки привести файл в нужное состояние.
Верно ли я понимаю, что лучшим методом будет копировать этот файл из репы безусловно на хост, перезаписывая если такой уже есть?
А почему такая проверка может быть не очень хорошей идеей?
Как лучше в таком случае поступить?