Test Engineering Notes
3.81K subscribers
177 photos
2 videos
648 links
Україномовний канал про технічні аспекти тестування, розподілені системи, блокчейн.

Консультації з автоматизації, менторинг, тестові співбесіди - @al8xr
Download Telegram
Працюємо з декількома сессіями з командою screen

#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."
👍11👏2