Blame


1 510c65cd 2020-05-17 mischa #!/bin/sh
2 510c65cd 2020-05-17 mischa #
3 12ad4a61 2024-05-26 mischa # Copyright (c) 2019-2024 Mischa Peters <mischa @ openbsd.amsterdam>
4 510c65cd 2020-05-17 mischa #
5 510c65cd 2020-05-17 mischa # Permission to use, copy, modify, and distribute this software for any
6 510c65cd 2020-05-17 mischa # purpose with or without fee is hereby granted, provided that the above
7 510c65cd 2020-05-17 mischa # copyright notice and this permission notice appear in all copies.
8 510c65cd 2020-05-17 mischa #
9 510c65cd 2020-05-17 mischa # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 510c65cd 2020-05-17 mischa # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 510c65cd 2020-05-17 mischa # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 510c65cd 2020-05-17 mischa # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 510c65cd 2020-05-17 mischa # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 510c65cd 2020-05-17 mischa # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 510c65cd 2020-05-17 mischa # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 510c65cd 2020-05-17 mischa #
17 6be5987f 2024-01-02 mischa DELAY=0
18 ff9ea80e 2020-11-01 mischa SLEEP=240
19 39fdfd90 2020-11-25 mischa CPU=$(($(sysctl -n hw.ncpuonline)-2))
20 d9aaef5b 2020-10-28 mischa
21 d9aaef5b 2020-10-28 mischa COUNTER=0
22 d9aaef5b 2020-10-28 mischa for i in $(vmctl show | sort | awk '/ - / {print $9}' | xargs); do
23 d9aaef5b 2020-10-28 mischa VMS[${COUNTER}]=${i}
24 d9aaef5b 2020-10-28 mischa COUNTER=$((${COUNTER}+1))
25 d9aaef5b 2020-10-28 mischa done
26 d9aaef5b 2020-10-28 mischa
27 d9aaef5b 2020-10-28 mischa CYCLES=$((${#VMS[*]}/${CPU}+1))
28 d9aaef5b 2020-10-28 mischa echo "Starting ${#VMS[*]} VMs on ${CPU} CPUs in ${CYCLES} cycle(s), waiting ${SLEEP} seconds after each cycle."
29 12ad4a61 2024-05-26 mischa echo "Excluding FDE VMs."
30 d9aaef5b 2020-10-28 mischa
31 d9aaef5b 2020-10-28 mischa COUNTER=0
32 d9aaef5b 2020-10-28 mischa for i in ${VMS[*]}; do
33 d9aaef5b 2020-10-28 mischa COUNTER=$((${COUNTER}+1))
34 12ad4a61 2024-05-26 mischa if [ ! -f "${HOME}/vms/${i}.txt-fde" ]; then
35 12ad4a61 2024-05-26 mischa vmctl start ${i} ; sleep ${DELAY}
36 12ad4a61 2024-05-26 mischa fi
37 d9aaef5b 2020-10-28 mischa if [ $COUNTER -eq $CPU ]; then
38 d9aaef5b 2020-10-28 mischa sleep ${SLEEP}
39 d9aaef5b 2020-10-28 mischa COUNTER=0
40 d9aaef5b 2020-10-28 mischa fi
41 d9aaef5b 2020-10-28 mischa done