:canonical: archivebox.ideas.process_plugin.ProcessPlugin
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.__init__
```
````{py:method} register_event_handlers() -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin.register_event_handlers
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.register_event_handlers
```
````
````{py:method} on_ProcessLaunch(event: archivebox.ideas.process_plugin.ProcessLaunch) -> archivebox.ideas.process_plugin.ProcessRecord
:canonical: archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessLaunch
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessLaunch
```
````
````{py:method} on_ProcessKill(event: archivebox.ideas.process_plugin.ProcessKill) -> archivebox.ideas.process_plugin.ProcessRecord
:canonical: archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessKill
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessKill
```
````
````{py:method} _watch_process(process_id: str, timeout: float | None) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._watch_process
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._watch_process
```
````
````{py:method} _finalize_process(process_id: str) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._finalize_process
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._finalize_process
```
````
````{py:method} _consume_stream(stream: asyncio.StreamReader | None, path: pathlib.Path, parent_event_id: str | None, parse_events: bool) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._consume_stream
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._consume_stream
```
````
````{py:method} _maybe_dispatch_json_event(line: str, parent_event_id: str | None) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._maybe_dispatch_json_event
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._maybe_dispatch_json_event
```
````
````{py:method} _write_cmd_file(path: pathlib.Path, cmd: list[str]) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._write_cmd_file
:staticmethod:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._write_cmd_file
```
````
````{py:method} _write_pid_file(path: pathlib.Path, pid: int) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._write_pid_file
:staticmethod:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._write_pid_file
```
````
````{py:method} _terminate_process(proc: asyncio.subprocess.Process, sig: int) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._terminate_process
:staticmethod:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._terminate_process
```
````