Могу ли я заставить какой-либо процесс выполнять системный вызов fork извне этого процесса?

справочный экран:

   ├─────────────────┼─────────────────┼─────────────────────┤
   │C-a a            │ (meta)          │ Send  the   command │
   │                 │                 │ character  (C-a) to │
   │                 │                 │ window. See  escape │
   │                 │                 │ command.            │
   ├─────────────────┼─────────────────┼─────────────────────┤

или:

   -e xy
        specifies the command character to be x and the character generat‐
        ing a literal command character to y (when typed after the command
        character).   The default is "C-a" and `a', which can be specified
        as "-e^Aa".  When creating a screen session, this option sets  the
        default  command character. In a multiuser session all users added
        will start off with this command character. But when attaching  to
        an  already  running session, this option changes only the command
        character of the attaching user.  This option is equivalent to ei‐
        ther the commands "defescape" or "escape" respectively.
1
22.05.2020, 21:02
1 ответ

Нет, вы не можете заставить программу выполняться forkили любые другие произвольные системные вызовы, если они уже не были запрограммированы для этого. Как правило, процессам не разрешается заставлять другие процессы выполнять произвольный код, кроме как через определенные API (, такие какptrace). Разрешение этого привело бы к многочисленным дырам в безопасности, даже если бы это было ограничено fork.

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

1
18.03.2021, 23:33

Теги

Похожие вопросы