...
This commit is contained in:
100
aiprompts/instructions/instructions_processmanager.md
Normal file
100
aiprompts/instructions/instructions_processmanager.md
Normal file
@@ -0,0 +1,100 @@
|
||||
|
||||
|
||||
create a process manager
|
||||
|
||||
which keeps separate process under control, measures the used cpu, memory
|
||||
|
||||
add possibilities to list, create, delete
|
||||
|
||||
we can talk to the process manager over local unix domain socket using a telnet session
|
||||
|
||||
## authentication
|
||||
|
||||
the telnet server says:
|
||||
|
||||
** Welcome: you are not authenticated, provide secret.
|
||||
|
||||
then we pass the secret which was passed when we started the process manager
|
||||
|
||||
once authenticated it says
|
||||
|
||||
** Welcome: you are authenticated.
|
||||
|
||||
now we can send heroscripts to it (see @pkg/playbook for how to parse that)
|
||||
|
||||
## actions can be sent over telnet
|
||||
|
||||
just send heroscript statements
|
||||
|
||||
everytime a new !! goes or # as comment we execute the previous heroscripts
|
||||
|
||||
## we make handlers
|
||||
|
||||
using the playbook: @pkg/playbook
|
||||
|
||||
this checks which commands are sent and this then calls the corresponding handler and instructs the processmanager
|
||||
|
||||
## start
|
||||
|
||||
heroscript
|
||||
|
||||
```bash
|
||||
!!process.start name:'processname' command:'command\n which can be multiline' log:true
|
||||
deadline:30 cron:'0 0 * * *' jobid:'e42'
|
||||
|
||||
```
|
||||
|
||||
|
||||
## list
|
||||
|
||||
|
||||
heroscript
|
||||
|
||||
```bash
|
||||
!!process.list format:json
|
||||
|
||||
```
|
||||
|
||||
lists the processes and returns as json
|
||||
|
||||
when telnet protocol needs to return its always as
|
||||
|
||||
**RESULT** e42
|
||||
... here is the result in chosen format
|
||||
**ENDRESULT**
|
||||
|
||||
if jobid specified on the heroscript action then its shown behind **RESULT** if not then its empty
|
||||
|
||||
## delete
|
||||
|
||||
```bash
|
||||
!!process.delete name:'processname'
|
||||
|
||||
```
|
||||
|
||||
## status
|
||||
|
||||
```bash
|
||||
!!process.status name:'processname' format:json
|
||||
|
||||
```
|
||||
|
||||
shows mem usage, cpu usage, status e.g. running ...
|
||||
|
||||
## restart, stop, start
|
||||
|
||||
do same as status but then for these
|
||||
|
||||
## log
|
||||
|
||||
|
||||
```bash
|
||||
!!process.log name:'processname' format:json limit:100
|
||||
|
||||
```
|
||||
|
||||
returns the last 100 lines of the log
|
||||
|
||||
if not format then just the log itself
|
||||
|
||||
|
||||
Reference in New Issue
Block a user