File: gvm-start

package info (click to toggle)
gvm 25.04.0
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 108 kB
  • sloc: sh: 625; makefile: 2
file content (65 lines) | stat: -rwxr-xr-x 1,778 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash

## Quit on error
set -e

## Colour for bash prompt
RED="\033[01;31m"
GREEN="\033[01;32m"
YELLOW="\033[01;33m"
RESET="\033[00m"

## Check if running as root
if [[ ${EUID} -ne 0 ]]; then
  echo -e "${RED}[-]${RESET} Error: $0 must be run as root" 1>&2
  exit 1
fi

## Define PORT and URL
PORT="9392"
URL="https://127.0.0.1:${PORT}"

## Check if GVM is already running
if systemctl is-active --quiet gsad && systemctl is-active --quiet gvmd && systemctl is-active --quiet ospd-openvas && systemctl is-active --quiet notus-scanner; then
    echo -e "${YELLOW}[i]${RESET} GVM services are already running"
    exit 0
fi

## Check if something is already on the port
if lsof -Pi :${PORT} -sTCP:LISTEN -t >/dev/null ; then
  echo -e "${RED}[-]${RESET} Something is already using port: ${PORT}/tcp" 1>&2
  lsof -Pi :${PORT} -sTCP:LISTEN
  echo ""
  ps -f $(lsof -Pi :${PORT} -sTCP:LISTEN -t)
  echo ""
  exit 1
fi

## Display information to user
echo -e "${GREEN}[>]${RESET} Please wait for the GVM services to start."
echo -e "${GREEN}[>]${RESET}"
echo -e "${GREEN}[>]${RESET} You might need to refresh your browser once it opens."
echo -e "${GREEN}[>]${RESET}"
echo -e "${GREEN}[>]${RESET}  Web UI (Greenbone Security Assistant): ${URL}\n"

## Start services
systemctl start notus-scanner gvmd ospd-openvas
sleep 5s
# better start gsa after
systemctl start gsad

## Check services status
systemctl --no-pager -l status gsad gvmd ospd-openvas

if dpkg-query -W -f'${db:Status-Status}' greenbone-security-assistant 2>/dev/null | grep -q ^installed; then
  ## Countdown
  echo -ne "\n${GREEN}[>]${RESET} Opening Web UI (${URL}) in: "
  for x in {5..1}; do
    echo -n "$x... "
    sleep 1s
  done
  echo ""

  ## Open browser
  xdg-open "${URL}" 2>/dev/null >/dev/null &
fi