È possibile modificare un genitore di processo?
ex: genitore A ha Child B posso rendere genitore di B il processo di Init senza uccidere A?modifica genitore di un processo
risposta
non dall'esterno del processo B.
Dal processo all'interno B, è possibile chiamare la forcella che fa una copia del vostro processo, poi lasciare l'uscita originale. Quando ciò accade la nuova copia B2 non sarà figlia di A, il suo genitore sarà impostato su 1 (il processo di init).
Calling ptrace(PTRACE_ATTACH, pid, x, y)
dove pid
è il pid di B (nel tuo esempio) e x e y non importa (probabilmente li impostato su NULL) renderà il processo chiamante il genitore di B per molti (ma non tutti) delle finalità (con restrizioni basate sull'ID utente dei processi, ovviamente, per impedirti di rilevare i processi di qualcun altro a meno che tu non sia root).
Dopo aver chiamato ptrace(PTRACE_ATTACH,
il bambino sarà ancora ottenere sia il suo genitore originale o di PID init come suo pid genitore da getppid()
, ma il processo di tracciamento sarà in grado di chiamare wait
e ottenere SIGCHLD
dal processo di B.
C'è un molte cose succedono qui, quindi dovresti leggere man 2 ptrace
e assicurarti di aver compreso abbastanza bene i dettagli.
- 1. Come si condividono i dati tra un processo genitore e un processo figlio biforcuto in Python?
- 2. Rilevamento figlio processo genitore 'morte in Python
- 3. Modifica della variabile di ambiente di un processo in esecuzione
- 4. Come creare un processo figlio a seconda del suo genitore?
- 5. Modifica della variabile di ambiente per un processo con scala.sys.process?
- 6. priorità del processo di modifica in Android
- 7. Direttiva AngularJS: modifica dimensione genitore dell'orologio
- 8. Creazione di un processo da un driver
- 9. Come attendere correttamente che un evento/processo finisca di non essere il genitore?
- 10. Riavvia il processo di modifica dei file in Linux
- 11. La priorità del processo di modifica non funziona
- 12. jQuery parent di un genitore
- 13. Lettura del documento principale da iFrame e modifica del genitore
- 14. Monitoraggio del decesso di un processo figlio
- 15. visibilità Discussione tra un processo
- 16. Chiamare il metodo di un genitore genitore, che è stato sovrascritto dal genitore
- 17. Come cambio la priorità di un processo?
- 18. Come usare fork() per demonizzare un processo figlio indipendente dal suo genitore?
- 19. Quando un processo genitore viene ucciso da "kill -9", anche il sottoprocesso verrà ucciso?
- 20. comportamento di genitore e bambino per un gestore di segnale
- 21. Come uccidere un processo figlio python creato con subprocess.check_output() quando il genitore muore?
- 22. Runtime.exec() bug: blocca senza fornire un oggetto di processo
- 23. Mac OS X: un processo può eseguire il rendering nella finestra di un altro processo?
- 24. Determina l'architettura di un processo
- 25. Avvio di un processo separato
- 26. Passi per la modifica del modello di processo per un progetto esistente in TFS 2010
- 27. Sospensione dell'invalidazione della cache di secondo livello quando un altro processo modifica il database
- 28. Come si modifica il modello di processo in un progetto team esistente in TFS 2010?
- 29. C# reindirizzare (pipe) l'output di processo a un altro processo
- 30. Come uccidere un processo senza ottenere un'eccezione di "processo terminato"?
È questo lavoro/esame gotcha? Cosa stai cercando di ottenere? – florin
mentre facevo i miei compiti questa era una domanda che mi veniva in mente. Cerco di sbarazzarmi di "Zombies" con vari modi – Aboelnour