Of course, you will see the general Klipper log, and it would be different from mine.
There is no reason to post my infinite log output here, even more, it does not make sense, because the output will depend on the actual config, connected peripherals & etc.
&
means run in the background.
You have seen in your console the
Which means there is 1 process in the background, and the last forked process has a pid of 4045.
So, you can kill it, kill -p 4045
.
~ sleep 15 &
[1] 4878
~ sleep 15 &
[2] 4887
~ sleep 15 &
[3] 4896
~ sleep 15 &
[4] 4905
That is the reason why I suggested you use multiple consoles to grasp the idea.
Because that allows not to use &
.
There should be OR, you either run from the console, control from the console & etc, or you run with Moonraker, web UI & etc.
Anyway, there should be one instance of the klippy (klipper host), which would in the end control the MCUs of your testing boards.
I would suggest that you check the @Sineos suggestion and script examples.
(Functional Test - ADXL345 status information - #6 by Sineos - or you could really try using of existing klipper console, alongside running moonraker & etc, instead of doing everything as I suggested in a headless manner (without other control software))
FWIW, I more or less understand what youâre trying to achieve (test the board, by the klipper for the klipper).
So, the whole architecture of abstractions looks like:
- WebUI (your browser) (REST API) â 2. Moonraker (JSON RPC) â 3. Klippy (Klipper Protocol) â 4. Klipperâs MCU.
So, there are 4 levels of automation and working with abstractions.
- What you do now: macros/selenium/meatbag (human). Someone or something interacts with WebUI, which does all the requests and checks the output.
- Do the web requests to the moonraker. Which will forward g-code to the Klippy, check the statuses, output & etc.
- Write Python/Shell/Expect (anything), which will talk to the klipper. Either by console or by json rpc. I suggested console, it is much more intuitive to run G-code and check the output.
- Run low level commands directly to the MCU, initialize, configure mcu, do steps, spi transfer & etc.
So, the 3rd variant, which I initially showed and suggested, works in the same way as OctoPrint controlling the Klipper. Something feeds G-code, and someone or something checks the console output.
But in reality, there are at least 4 levels where you can automate what you want.
That will all depends on what things you are familiar with, and what will be simpler for you.
I feel like Iâve complicated your life with my little/initial suggestion.
Hope that clarify something.