commit 837cc825fdab481bbb268a3230eaadae8776d91d
parent 119ab93195c596608358f449e618f0e049f78b18
Author: Jan Pobříslo <ccx@te2000.cz>
Date: Sat, 25 Jun 2022 13:22:57 +0200
Mount logs in xsession
Diffstat:
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/service_scripts/generic/finish b/service_scripts/generic/finish
@@ -9,4 +9,5 @@ multisubstitute {
# define CONTAINER_DATA /mnt/volumes/containers/user/${CONTAINER_USER}/${CONTAINER_NAME}
}
foreground { umount --recursive data/root }
-rm -rf ${CONTAINER_TMPFS}
+foreground { rm -rf ${CONTAINER_TMPFS} }
+s6-svc -a log # rotate the log
diff --git a/service_scripts/xsession/run b/service_scripts/xsession/run
@@ -11,6 +11,7 @@ multisubstitute {
define CONTAINER_TMPFS /run/containers/${CONTAINER_NAME}.${CONTAINER_USER}
# define CONTAINER_DATA /mnt/volumes/containers/user/${CONTAINER_USER}/${CONTAINER_NAME}
define -s tmpfs_dirs "home run tmp inbox run/inbox tmp/.X11-unix"
+ importas -D ns -s -C -u CONTAINER_MNT_DIRS CONTAINER_MNT_DIRS
}
getpid NS_PID
@@ -23,7 +24,7 @@ foreground {
}
if { rm -rf ${CONTAINER_TMPFS} }
-if { mkdir -p ${CONTAINER_TMPFS}/${tmpfs_dirs} }
+if { mkdir -p ${CONTAINER_TMPFS}/${tmpfs_dirs} ${CONTAINER_TMPFS}/mnt/${CONTAINER_MNT_DIRS} }
if { chmod 1770 ${CONTAINER_TMPFS}/${tmpfs_dirs} }
if { chown root:${CONTAINER_USER} ${CONTAINER_TMPFS}/${tmpfs_dirs} }
if { mount -a --fstab data/fstab }
diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init
@@ -106,7 +106,7 @@ confz_container_service_check() {
confz_container_service_log_check() {
checkvars svc_dir log_dir log_uid log_gid
- defvar log_umask 007
+ defvar log_umask 027
local -a runscript=(
'#!/command/execlineb -P'
@@ -389,9 +389,10 @@ confz_container_service_alsa_check() {
confz_container_service_xsession_check() {
local uid gid container_user_dir svc_dir container
- local -a fstab
+ local -a fstab mnt_dirs
checkvars containers_dir svscan_dir image_name user display_number
defvar fstab_extra ''
+ defvar mnt_dirs_extra ''
container=xsession.$vars[display_number]
uid="${${(s.:.)"$(getent passwd $vars[user])"}[3]}" \
@@ -415,12 +416,15 @@ confz_container_service_xsession_check() {
require fs_l filename=$vars[containers_dir]/home/$vars[user]/$container \
destination=../../user/$vars[user]/$container/root/home/$vars[user]
+ mnt_dirs=( ns logs $=vars[mnt_dirs_extra] )
+
fstab=(
$vars[containers_dir]/systems/$vars[image_name]$'\t'$container_user_dir/root$'\tnone\tbind,ro,nosuid,nodev\t0 0'
/run/containers/$container.$vars[user]/home$'\t'$container_user_dir/root/home$'\tnone\tbind,nosuid,nodev\t0 0'
/run/containers/$container.$vars[user]/run$'\t'$container_user_dir/root/run$'\tnone\tbind,nosuid,nodev\t0 0'
/run/containers/$container.$vars[user]/tmp$'\t'$container_user_dir/root/tmp$'\tnone\tbind,nosuid,nodev\t0 0'
/run/containers/$container.$vars[user]/inbox$'\t'$container_user_dir/root/.inbox$'\tnone\tbind,ro,nosuid,nodev\t0 0'
+ /run/container-logs$'\t'$container_user_dir/root/mnt/logs$'\tnone\tbind,ro,nosuid,nodev\t0 0'
"${(f@)vars[fstab_extra]}"
)
@@ -438,6 +442,8 @@ confz_container_service_xsession_check() {
content=:$vars[display_number]
require fs_contentnl filename=$svc_dir/env/vtN \
content=$vars[display_number]
+ require fs_contentnl filename=$svc_dir/env/CONTAINER_MNT_DIRS \
+ content="$mnt_dirs"
}
# --- new image constructor