Skip to content

Commit

Permalink
add support for running fai inside a screen or tmux session
Browse files Browse the repository at this point in the history
  • Loading branch information
Mrfai committed May 29, 2023
1 parent 6fe6259 commit 93c4ad2
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 3 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ USRSBIN_SCRIPTS = fai-make-nfsroot fai-setup fcopy ftar install_packages fai-chb
USRBIN_SCRIPTS = fai-class fai-do-scripts fai-mirror fai-debconf device2grub policy-rc.d.fai ainsl fai-link fai-sed fai-monitor-gui fai-deps fai-mk-configspace

# for syntax checks
BASH_SCRIPTS = bin/fai bin/fai-cd bin/fai-class bin/fai-debconf bin/fai-do-scripts bin/fai-make-nfsroot bin/fai-mirror bin/fai-setup bin/fai-diskimage bin/fai-statoverride bin/faireboot bin/ftar bin/fai-link bin/fai-sed dev-utils/fai-kvm dev-utils/fai-mk-network examples/simple/basefiles/mk-basefile examples/simple/class/*.sh examples/simple/class/[0-9]* examples/simple/files/etc/rc.local/FAISERVER examples/simple/hooks/* examples/simple/scripts/*/* lib/fai-divert lib/fai-mount-disk lib/fai-savelog lib/fetch-basefile lib/get-boot-info lib/get-config-dir* lib/mkramdisk lib/mount2dir lib/prcopyleft lib/subroutines lib/task_* lib/updatebase lib/dracut/*/* bin/fai-mk-configspace lib/check-cross-arch
BASH_SCRIPTS = bin/fai bin/fai-cd bin/fai-class bin/fai-debconf bin/fai-do-scripts bin/fai-make-nfsroot bin/fai-mirror bin/fai-setup bin/fai-diskimage bin/fai-statoverride bin/faireboot bin/ftar bin/fai-link bin/fai-sed dev-utils/fai-kvm dev-utils/fai-mk-network examples/simple/basefiles/mk-basefile examples/simple/class/*.sh examples/simple/class/[0-9]* examples/simple/files/etc/rc.local/FAISERVER examples/simple/hooks/* examples/simple/scripts/*/* lib/fai-divert lib/fai-mount-disk lib/fai-savelog lib/fetch-basefile lib/get-boot-info lib/get-config-dir* lib/mkramdisk lib/mount2dir lib/prcopyleft lib/subroutines lib/task_* lib/updatebase lib/dracut/*/* bin/fai-mk-configspace lib/check-cross-arch lib/terminal-wrapper
SHELL_SCRIPTS = bin/dhclient-fai-script bin/policy-rc.d.fai lib/check_status lib/create_resolv_conf lib/fai-abort lib/fai-disk-info lib/load_keymap_consolechars utils/mkdebmirror
PERL_SCRIPTS = lib/setup-storage/*.pm bin/ainsl bin/device2grub bin/dhcp-edit bin/fai-chboot bin/fai-deps bin/fai-monitor bin/fai-monitor-gui bin/fai-new-mac bin/fcopy bin/install_packages bin/setup-storage dev-utils/setup-storage_deps-graph.pl examples/simple/tests/Faitest.pm lib/dhclient-perl lib/fai-savelog-ftp

Expand Down
1 change: 1 addition & 0 deletions conf/NFSROOT
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ pxelinux syslinux-common
ca-certificates # for get-config-dir-https and apt-transport-https
usbutils pciutils
ssh
screen tmux
netselect
mdadm
cryptsetup
Expand Down
2 changes: 1 addition & 1 deletion conf/systemd/fai.service
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Before=shutdown.target
[Service]
Environment=HOME=/root
WorkingDirectory=-/root
ExecStart=-/etc/init.d/rcS
ExecStart=-/usr/lib/fai/terminal-wrapper
Type=idle
StandardInput=tty-force
StandardOutput=inherit
Expand Down
1 change: 1 addition & 0 deletions debian/fai-nfsroot.install
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ usr/lib/fai/create_resolv_conf
usr/lib/fai/load_keymap_consolechars
usr/lib/fai/fai-mount-disk
usr/lib/fai/task_sysinfo
usr/lib/fai/terminal-wrapper
usr/share/fai/dhclient-fai-script
usr/share/fai/dhclient-fai.conf
usr/share/fai/udev.patch
Expand Down
6 changes: 6 additions & 0 deletions doc/fai-guide.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,12 @@ menu::
This enables a user menu for selecting a profile. All files
+class/*.profile+ are read and a curses based menu will be created.

screen:
Run FAI inside a `screen(1)` session. The session is called FAI.

tmux:
Run FAI inside a `tmux(1)` session. The session is called FAI.

reboot::
Reboot the install client after installation is finished without
typing RETURN on the console. If this flag is not set, and error.log
Expand Down
20 changes: 20 additions & 0 deletions lib/terminal-wrapper
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#! /bin/bash

# This script is part of FAI (Fully Automatic Installation)
# (c) 2023 by Thomas Lange, lange@debian.org

# start fai directly or inside screen or tmux

. /usr/lib/fai/subroutines
eval_cmdline
define_fai_flags

if [ X$flag_screen = X1 ]; then
screen -S FAI /etc/init.d/rcS
exec /etc/init.d/fai-abort
elif [ X$flag_tmux = X1 ]; then
tmux new-session -s FAI /etc/init.d/rcS
exec /etc/init.d/fai-abort
else
exec /etc/init.d/rcS
fi

0 comments on commit 93c4ad2

Please sign in to comment.