P
More thoughts on /opt/pimp/pimp.
(This is turning more into a generalized PiMP console-management thread.)
Multiplexers and management
As noted in the opening post, I'd like to see the sessions named more descriptively. But, also, I think it would be easy to launch all miners into a single session where each miner gets its own window. So, for example, at boot a session screen -dmS PiMP $SHELL starts. pimp (or minerfarm) would then start each miner within a named window inside session PiMP, so we'd end up with windows PiMP.<asic-miner>-<api.port>, PiMP.<cpu-miner>-<api.port>, PiMP.<gpu-miner>-<api.port>, PiMP.<minerfarmconsole> (for example.) It preserves the naming structure, keeping it easy for mfagent to monitor the goings-on. It also would make it easy(er) to display multiple miner outputs on a single (large) monitor. Window managment functions of screen easily allow for splitting display, bringing windows into current view as panes, etc.
IDEALLY, I could choose the terminal multiplexer in a configuration file. I mean, personally, I prefer tmux over screen; and byobu has its temptations even though it's basically a wrapper around screen or tmux with some enhancements. tmux and byobu are actively developed, for example, while screen hasn't seen any real dev activity in years.
And $HOME/.userrc would come pre-populated with a (default: commented out) command to screen -r PiMP at ssh-login.
menu-driven function
<deleted> (this requested functionality is available in minerfarm console, with bugs which I'll report elsewhere)
alternatively, containers
No, not docker, though it does have its advantages. We already have systemd installed, which means we already have systemd-nspawn. Or; currently (2.15) PiMP an Ubuntu base, which means we have lxc. There are advantages and disadvantages to containers, though. One of the big advantages is hardware access restrictions. Each contained miner can be automagically limited to certain hardware. NVIDIA and AMD GPUs could by separated logically and reduce possible conflicts in the miner software. Crashing miners would be less likely to overwrite memory pages in use by other software. Network access can be hard-restricted to specific ports. Etc.
This could be combined with screen (or tmux or byobu) monitoring, above.
The biggest disadvantage is system-resource use. Containers need a lot more RAM and CPU than terminal multiplexers.
minerfarm enhancements
(I'll be brief. I don't think these need any explaination or justification.)
Add gputool functions.
Add htop or glances or some other monitor/management agent.
It's ugly; really ugly.
It's hard to work with inside a small terminal window (less than about 60 lines.) Most terminal emulators default to a 25 line session. I think most users extend this, but it's better to write for defaults than make assumptions about user behavior.