Come si elimina un processo in Erlang conoscendo solo il nome del modulo utilizzato per avviarlo?Come si elimina un processo in Erlang conoscendo solo il nome del modulo utilizzato per avviarlo?
risposta
Non c'è modo di farlo.
La soluzione migliore è speculare in base al nome registrato e/o alla chiamata iniziale dei processi.
nel caso in cui qualcuno che sta cercando l'API per ottenere il pid per nome registrato, invoca 'whereis (RegisteredName)' –
Se è per il debug semplice, è possibile eseguire pman: start() e cercare il processo (fare doppio clic su una voce per visualizzare dettagli come la chiamata iniziale). Puoi quindi ucciderlo direttamente da pman.
In caso contrario, è possibile utilizzare Erlang: processi() per elencare tutti i processi nel sistema (orribile, lo so), e Erlang run: process_info (Pid, initial_call) su ciascuno di loro di trovare il giusto processo. Una volta fatto, basta usare exit (Pid, kill).
È ancora possibile trovare il processo con altri mezzi, anche se non è registrato. Ad esempio, potresti dare un'occhiata a un monitor di processo come pman (pman: start()) e vedere se lo trovi lì. pman ti permette di filtrare per molti criteri, il che potrebbe portare al processo giusto. Oppure puoi avviare il debugger, installare un breakpoint nel modulo e la volta successiva che il processo fa qualcosa, verrà interrotto, il debugger aprirà una finestra e nella barra del titolo potrai leggere il PID del processo che è stato interrotto.
Una volta ottenuto il PID, è possibile utilizzare pid (A, B, C). forgiare un oggetto PID sulla shell da esso, e usarlo per uccidere il processo.
- 1. Come cambio il nome del processo di un Erlang VM?
- 2. Come posso istanziare un oggetto conoscendo solo il suo nome?
- 3. avviare l'applicazione conoscendo il nome del pacchetto
- 4. Come si installa un modulo in erlang?
- 5. PowerShell: se un processo non è in esecuzione, avviarlo
- 6. Elimina un processo java (in linux) per nome processo anziché PID
- 7. Elimina un processo se esiste
- 8. Come chiamare dinamicamente un modulo in Erlang?
- 9. Come si crea un nome file temporaneo in Erlang?
- 10. Come si documentano le classi senza il nome del modulo?
- 11. Modificare il nome del processo in C#?
- 12. Attendere un certo processo (conoscendo la "PID") end
- 13. Il nome del processo è sempre il nome dell'exe?
- 14. Come ottenere solo l'ID di processo nel nome del processo specificato in linux?
- 15. Come ottenere l'ID del processo dal nome del processo?
- 16. Ottieni il nome del processo tramite PID
- 17. Elimina cookie per nome?
- 18. Erlang. modo corretto di fermare il processo
- 19. Come impostare il nome del processo eseguibile del progetto?
- 20. System.IO.IOException: file utilizzato da un altro processo
- 21. Python: come si chiama un metodo quando si ha solo il nome stringa del metodo?
- 22. reprimere il carico del modulo (gestito solo)
- 23. Come ottenere il nome del processo in C++
- 24. Erlang: attributo modulo
- 25. Effettuare un processo inattivo per un tempo casuale - Erlang
- 26. Erlang erl_call causa la chiusura del modulo gen_server
- 27. Ottieni il nome del processo corrente (eseguibile) in Vai?
- 28. Impossibile trovare il processo figlio del modulo
- 29. Come importare il modulo quando il nome del modulo ha un trattino '-' o un trattino?
- 30. Cambia nome del processo in Task Manager
Se il modulo noto ha avviato molti processi, come fai a sapere quale uccidere? – Paralife