-
Notifications
You must be signed in to change notification settings - Fork 0
/
service-build.sh
82 lines (70 loc) · 1.96 KB
/
service-build.sh
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
rm -rf "bin"
# ====================
#
# ====================
dotnet publish "src/ksenz/ksenz.csproj" --no-self-contained --output "bin" --runtime linux-x64 \
"-p:Configuration=Release" \
"-p:DebugType=None" \
"-p:GenerateRuntimeConfigurationFiles=true" \
"-p:PublishSingleFile=true"
# ====================
#
# ====================
cat > "bin/service-install.sh" << INSTALLER
#!/bin/bash
echo "================================================================================"
echo "This installation script will register a system service. When finished, the name"
echo "of this service is readable by any user. To make sure that it cannot be used for"
echo "detection purposes, you have to enter a random service name. Ensure that it does"
echo "not exist already, and only use characters in [0-9A-Z-]."
echo "================================================================================"
read -p "ServiceName: " serviceName
# ====================
#
# ====================
rootPath=\$(realpath .)
execPath=\$(realpath "ksenz")
servPath="/etc/systemd/system/\${serviceName}.service"
# ====================
#
# ====================
cat > \$servPath << EOF
[Unit]
Description=\${serviceName}
[Service]
Type=simple
WorkingDirectory=\${rootPath}
ExecStart=\${execPath}
[Install]
WantedBy=multi-user.target
EOF
# ====================
#
# ====================
chmod 770 "\$servPath"
# ====================
#
# ====================
systemctl daemon-reload
systemctl start \${serviceName}
systemctl enable \${serviceName}
INSTALLER
cat > "bin/service-uninstall.sh" << UNINSTALLER
#!/bin/bash
read -p "ServiceName: " serviceName
# ====================
#
# ====================
systemctl disable \${serviceName}
systemctl stop \${serviceName}
# ====================
#
# ====================
rm -rf "/etc/systemd/system/\${serviceName}.service"
UNINSTALLER
# ====================
#
# ====================
chmod +x "bin/service-install.sh"
chmod +x "bin/service-uninstall.sh"