spamsink: (Default)
spamsink ([personal profile] spamsink) wrote2025-07-07 04:34 pm
Entry tags:

Загадка для юниксных программистов

Сделайте разумное предположение (educated guess), зачем бы нужно было рестартовать обычный пользовательский юниксный процесс, ничего не меняя в его аргументах или окружении.

// Необходимые инклюды
int main(int argc, char *argv[], char *envp[]) {
    // Объявление локальных переменных
    // Некоторые действия, не использующие и не меняющие argv и envp
    // fork не делается
    if (/* условие */)
        execve("/proc/self/exe", argv, envp);
    // Маловероятная неудача execve - досада, но не беда, можно продолжать

    // Далее - собственно функциональная часть программы
}
lxe: (Default)

[personal profile] lxe 2025-07-08 12:14 am (UTC)(link)
Отвязка от терминала? SSHD так демонизируется.
Edited 2025-07-08 00:14 (UTC)
lxe: (Default)

[personal profile] lxe 2025-07-08 12:25 am (UTC)(link)
Наше овечество -- все человечество подсказывает, что это disabling address space layout randomization.
Только тогда это не просто условие, это условие с побочным эффектом.
vak: (Default)

[personal profile] vak 2025-07-08 12:51 am (UTC)(link)
Освободить страницы памяти, задействованные в процессе "некоторых действий"?
juan_gandhi: (Default)

[personal profile] juan_gandhi 2025-07-08 12:53 am (UTC)(link)
Чтоб какой-нибудь, э, бог Кронос не смог замочить? (Я не сишник и не юниксоид, так что гадаю просто.)

[personal profile] sassa_nf 2025-07-08 05:00 am (UTC)(link)
In order to be open to attacks? Mitigate against attempts to ptrace?
vak: (Default)

[personal profile] vak 2025-07-08 05:44 am (UTC)(link)
Если размер памяти, выделенной процессу, больше некоторого порога.
vak: (Default)

[personal profile] vak 2025-07-09 02:12 am (UTC)(link)
Но если память навыделялась, освободить эти страницы уже непросто.
vak: (Default)

[personal profile] vak 2025-07-09 03:01 am (UTC)(link)
Вдруг у тебя в "некоторых действиях, не использующих и не меняющих argv и envp" загружается и обрабатывается большой массив данных.
vak: (Default)

[personal profile] vak 2025-07-09 05:43 am (UTC)(link)
Ну тогда моя гипотеза не годится.