LINUX.ORG.RU
решено ФорумTalks

Почему процессы каждый раз запускаются с разым ID ?


0

1

Собственно сабж.
Например те же коньки. Вроде в автозагрузке висят, но каждый раз новый PID.
Просто вдруг стало интересно, если ничего не меняется, значить порядок закрузки тоже не меняется. Может я ошибаюсь, поправьте.

★★★★★

Последнее исправление: dada (всего исправлений: 1)

Ответ на: комментарий от sluggard

Ну тогда большой брат не стабилен =)

dada ★★★★★
() автор топика

Чуть не забыл, если уважаемый mono считает что тема не для толксов, то пусть переносит в тех.разделы. Убедительная просьба не трогать скор (скоро первая звёздочка).

dada ★★★★★
() автор топика

а почему собственно они должны быть одинаковыми?

вообще конечно PID-ы новым процессам назначаются последовательно, но еще задолго до запуска приложений в автозагрузке DE стартуют и завершаются 100500 разных процессов, соотв. каждая последовательность запусков уникальна и не повторяет предыдущую :)

Harald ★★★★★
()
Ответ на: комментарий от Harald

вообще конечно PID-ы новым процессам назначаются последовательно, но еще задолго до запуска приложений в автозагрузке DE стартуют и завершаются 100500 разных процессов

Ну да. Только эти процессы ведь не запускаются по настроению. Имею ввиду что процессы всегда одинаковые, соответственно скорость запуска тоже одинаковая, соответственно id у них тоже должен быть всегда одинаковым.

dada ★★★★★
() автор топика

ибо

int randompid;              /* when set to 1, pid's go random */

int
fork1(struct proc *curp, int exitsig, int flags, void *stack, pid_t *tidptr,
    void (*func)(void *), void *arg, register_t *retval,
    struct proc **rnewprocp)
{
        /* очень много кода пропущенно */

        /* Find an unused pid satisfying 1 <= lastpid <= PID_MAX */
        do {
                lastpid = 1 + (randompid ? arc4random() : lastpid) % PID_MAX;
        } while (pidtaken(lastpid));

        /* очень много кода пропущенно */
}
/thread

beastie ★★★★★
()
Ответ на: комментарий от beastie
do {
                lastpid = 1 + (randompid ? arc4random() : lastpid) % PID_MAX;
        } while (pidtaken(lastpid));

Спасибо.
/thread

dada ★★★★★
() автор топика

А зачем тебе постоянный PID в принципе? Отловить нужный процесс и взять его ID не представляет труда.

Smacker ★★★★
()
Ответ на: комментарий от Smacker

ps с grep-ом безусловно наше всё. Просто вдруг стало интересно, поэтому и в толксах

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

повышение безопасности. что бы кулхацкер не мог предсказать с каким пидом его кулексполоит или его жертва запустится/-тятся. плюс, традиционно, pid часто используется/-вался как seed для random функции, что тоже как-то намекает.

beastie ★★★★★
()

Старт системы идёт скриптами. Там много условий - иногда что-то выполняется, иногда нет. Ждут друг друга и т.д. Соответственно кол-во процессов разное. Даже если бы они (PID) назначались последовательно.

vahtu
()
Ответ на: комментарий от vahtu

Если все монтируется в ro, условия всегда одинаковые будут -> одинаковые пиды.

ymuv ★★★★
()

[grammar nazi]Кто ставит пробелы между предложением и знаков вопроса - тот балбес[/grammar nazi]

Deleted
()
Ответ на: комментарий от Deleted

Уже не получается поправить =\
Пы.Сы.
[troll_mode]

между предложением и знаков вопроса

на опечатку не очень тянет [/troll_mode]

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

Да она вообще несчастный человек.

А «шлюз» стараюсь не писать в документации и сопутствующих документах, периодически неудобно выходит очень :)

Deleted
()
Ответ на: комментарий от Deleted

Да да =)
«Заходит в шлюз» одна ошибка в словосочетании стартует целую эпопею в переписке.

dada ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.