-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall-sysvinit.sh
38 lines (30 loc) · 1.05 KB
/
install-sysvinit.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
#!/bin/sh
set -ue
[ -x /etc/init.d/incus-agent ] && [ -x /usr/local/bin/incus-agent-setup ] && exit 0
if [ "$(id -u)" -ne 0 ]; then
printf '%s\n' "Please run as root!"
exit 127
fi
mount_cdrom() {
mount "/dev/disk/by-id/scsi-0QEMU_QEMU_CD-ROM_incus_agent" "$1" > /dev/null 2>&1
}
mount_9p() {
modprobe 9pnet_virtio > /dev/null 2>&1 || true
mount -t 9p config "$1" -o access=0,trans=virtio,size=1048576 > /dev/null 2>&1
}
install_sysvinit_files() {
cp -f etc/init.d/incus-agent /etc/init.d/incus-agent
chown -R 0:0 /etc/init.d/incus-agent
chmod 755 /etc/init.d/incus-agent
mkdir /mnt/.incus-agent
mount_9p /mnt/.incus-agent || mount_cdrom /mnt/.incus-agent || return 1
cp -f /mnt/.incus-agent/systemd/incus-agent-setup /usr/local/bin/
insserv -v incus-agent
}
if (grep -qF "sysvinit" /sbin/init); then
install_sysvinit_files || true
umount -l /mnt/.incus-agent && rmdir /mnt/.incus-agent
else
printf '%s\n' "Unsupported init system!"
fi
printf '\n%s\n' "Incus agent has been installed, reboot to confirm setup."