Працюємо з декількома сессіями з командою screen
#scripting #bash #linux
Задача
Треба запустити N вузлів з різними вхідними параметрами, портами та ін. Для кожного вузла підготований власний shell-скрипт.
- Можна робити це вручну, в різних табах терміналу.
- Можна - запускати та відправляти процеси в бекграунд.
А можна - за допомогою команди screen.
Ця команда дозволяє переключатись між різними окремими сессіями в терміналі (наприклад коли вам треба запустити якісь процеси в рамках однієї SSH сессії). Доволі зручно.
#scripting #bash #linux
Задача
Треба запустити N вузлів з різними вхідними параметрами, портами та ін. Для кожного вузла підготований власний shell-скрипт.
- Можна робити це вручну, в різних табах терміналу.
- Можна - запускати та відправляти процеси в бекграунд.
А можна - за допомогою команди screen.
Ця команда дозволяє переключатись між різними окремими сессіями в терміналі (наприклад коли вам треба запустити якісь процеси в рамках однієї SSH сессії). Доволі зручно.
#!/bin/bashПрибрати усі наявні скріни можна наступним скріптом:
nodes=("a" "b" "c" "d" "e")
for node in "${nodes[@]}"; do
screen -dmS $node bash -c "~/scripts/${node}.sh; exec bash"
echo "Started ${node} node"
done
echo "Nodes have been started in separate screens."
#!/bin/bash
active_sessions=$(screen -ls | grep -o '[0-9]\+\.')
for session in $active_sessions; do
screen -S "${session%?}" -X quit
done
echo "All screen sessions have been terminated and closed."
Linuxhint
Linux Screen Command Tutorial
Practical tutorial on the basic uses of the screen command to open a single terminal window in multiple instances by creating multiple screen windows.
👍11👏2