mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-09-17 04:06:47 +00:00
eep only package-changing executions and clean up entry presentation
This commit is contained in:
@@ -254,7 +254,6 @@ cleanup_duplicate_repos_pve9() {
|
||||
|
||||
if [ $cleaned_count -gt 0 ]; then
|
||||
msg_ok "$(translate "Cleaned up $cleaned_count duplicate/old repositories")"
|
||||
pmx_record_execution "Update package lists after repository cleanup" "apt-get update"
|
||||
apt-get update > /dev/null 2>&1 || true
|
||||
else
|
||||
msg_ok "$(translate "No duplicate repositories found")"
|
||||
@@ -335,7 +334,6 @@ cleanup_duplicate_repos_pve9_() {
|
||||
|
||||
if [ $cleaned_count -gt 0 ]; then
|
||||
msg_ok "$(translate "Cleaned up $cleaned_count duplicate/old repositories")"
|
||||
pmx_record_execution "Update package lists after repository cleanup" "apt-get update"
|
||||
apt-get update > /dev/null 2>&1 || true
|
||||
else
|
||||
msg_ok "$(translate "No duplicate repositories found")"
|
||||
|
||||
@@ -819,7 +819,6 @@ _proxmenux_nvidia_migrate_legacy_blacklist() {
|
||||
chown --reference="$udev_disabled" "$udev_rules" 2>/dev/null || true
|
||||
pmx_remove_file "$udev_disabled" || true
|
||||
fi
|
||||
pmx_record_execution "Reload udev rules" "udevadm control --reload-rules"
|
||||
udevadm control --reload-rules >/dev/null 2>&1 || true
|
||||
changed=true
|
||||
fi
|
||||
|
||||
@@ -405,6 +405,20 @@ pmx_record_execution() {
|
||||
# changed — the state before it ran is not knowable. Used by the
|
||||
# registration path so a host carries an honest account of what was
|
||||
# applied before the journal existed.
|
||||
# Records packages the installer put on the host before the journal existed
|
||||
# (its own dependencies). They are a real host change, so they belong in the
|
||||
# installation class — there is simply no prior state to diff, because the
|
||||
# host did not have them.
|
||||
pmx_record_install() {
|
||||
local packages="$1" version="${2:-1.0}"
|
||||
local -a fields
|
||||
mapfile -t fields < <(_pmx_journal_common)
|
||||
_pmx_journal_record "${fields[@]}" \
|
||||
"class=installation" "operation=install_package" "target=$packages" \
|
||||
"installed=$packages" "function_version=$version" "result=ok" \
|
||||
"capture=created" "revert=purge" "exactness=none"
|
||||
}
|
||||
|
||||
pmx_record_applied() {
|
||||
local tool="$1" version="$2" state="${3:-applied}"
|
||||
local -a fields
|
||||
|
||||
@@ -120,7 +120,6 @@ EOF
|
||||
cleanup_duplicate_repos
|
||||
|
||||
msg_info "$(translate "Updating package lists...")"
|
||||
pmx_record_execution "Update package lists" "apt-get update"
|
||||
if apt-get update > "$log_file" 2>&1; then
|
||||
msg_ok "$(translate "Package lists updated successfully")"
|
||||
else
|
||||
@@ -168,14 +167,12 @@ EOF
|
||||
msg_info2 "$(translate "Update cancelled by user")"
|
||||
pmx_record_execution "Remove unused packages" "apt-get -y autoremove"
|
||||
apt-get -y autoremove > /dev/null 2>&1 || true
|
||||
pmx_record_execution "Clean downloaded package cache" "apt-get -y autoclean"
|
||||
apt-get -y autoclean > /dev/null 2>&1 || true
|
||||
return 0
|
||||
elif [[ $MENU_RESULT -eq 2 ]]; then
|
||||
msg_ok "$(translate "System is already up to date. No update needed.")"
|
||||
pmx_record_execution "Remove unused packages" "apt-get -y autoremove"
|
||||
apt-get -y autoremove > /dev/null 2>&1 || true
|
||||
pmx_record_execution "Clean downloaded package cache" "apt-get -y autoclean"
|
||||
apt-get -y autoclean > /dev/null 2>&1 || true
|
||||
return 0
|
||||
fi
|
||||
@@ -273,7 +270,6 @@ EOF
|
||||
msg_info "$(translate "Performing system cleanup...")"
|
||||
pmx_record_execution "Remove unused packages" "apt-get -y autoremove"
|
||||
apt-get -y autoremove > /dev/null 2>&1 || true
|
||||
pmx_record_execution "Clean downloaded package cache" "apt-get -y autoclean"
|
||||
apt-get -y autoclean > /dev/null 2>&1 || true
|
||||
msg_ok "$(translate "Cleanup finished")"
|
||||
|
||||
|
||||
@@ -164,7 +164,6 @@ EOF
|
||||
fi
|
||||
|
||||
# UPDATE: no progress bar here (dpkg is not involved); capture output to parse errors
|
||||
pmx_record_execution "Update package lists" "apt-get update"
|
||||
update_output=$(apt-get update 2>&1)
|
||||
update_exit_code=$?
|
||||
|
||||
@@ -182,25 +181,21 @@ EOF
|
||||
|
||||
if command -v gpg >/dev/null 2>&1; then
|
||||
# Modern approach: receive -> export -> dearmor into /etc/apt/keyrings/<KEY>.gpg
|
||||
pmx_record_execution "Import missing repository signing key" "gpg --batch --keyserver keyserver.ubuntu.com --recv-keys $key"
|
||||
if gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" \
|
||||
&& gpg --batch --export "$key" | gpg --dearmor -o "/etc/apt/keyrings/${key}.gpg"; then
|
||||
msg_ok "$(translate "Imported missing GPG key: $key")"
|
||||
else
|
||||
msg_warn "$(translate "Keyrings method failed; trying apt-key fallback")"
|
||||
pmx_record_execution "Import missing repository signing key with apt-key" "apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key"
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key" >/dev/null 2>&1 || true
|
||||
fi
|
||||
else
|
||||
# Fallback for minimal systems without gpg installed
|
||||
msg_warn "$(translate "gpg not found; trying apt-key fallback")"
|
||||
pmx_record_execution "Import missing repository signing key with apt-key" "apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key"
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key" >/dev/null 2>&1 || true
|
||||
fi
|
||||
fi
|
||||
|
||||
# Retry update after importing the key
|
||||
pmx_record_execution "Retry package list update" "apt-get update"
|
||||
if apt-get update > "$log_file" 2>&1; then
|
||||
msg_ok "$(translate "Package lists updated after GPG fix")" | tee -a "$screen_capture"
|
||||
else
|
||||
@@ -282,7 +277,6 @@ EOF
|
||||
msg_info2 "$(translate "Update cancelled by user")"
|
||||
pmx_record_execution "Remove unused packages" "apt-get -y autoremove"
|
||||
apt-get -y autoremove > /dev/null 2>&1 || true
|
||||
pmx_record_execution "Clean downloaded package cache" "apt-get -y autoclean"
|
||||
apt-get -y autoclean > /dev/null 2>&1 || true
|
||||
rm -f "$screen_capture"
|
||||
return 0
|
||||
@@ -290,7 +284,6 @@ EOF
|
||||
msg_ok "$(translate "System is already up to date. No update needed.")"
|
||||
pmx_record_execution "Remove unused packages" "apt-get -y autoremove"
|
||||
apt-get -y autoremove > /dev/null 2>&1 || true
|
||||
pmx_record_execution "Clean downloaded package cache" "apt-get -y autoclean"
|
||||
apt-get -y autoclean > /dev/null 2>&1 || true
|
||||
rm -f "$screen_capture"
|
||||
return 0
|
||||
@@ -341,7 +334,6 @@ EOF
|
||||
|
||||
pmx_record_execution "Remove unused packages" "apt-get -y autoremove"
|
||||
apt-get -y autoremove > /dev/null 2>&1 || true
|
||||
pmx_record_execution "Clean downloaded package cache" "apt-get -y autoclean"
|
||||
apt-get -y autoclean > /dev/null 2>&1 || true
|
||||
msg_ok "$(translate "Cleanup finished")"
|
||||
|
||||
|
||||
@@ -118,7 +118,6 @@ EOF
|
||||
|
||||
if [[ "$need_update" == true ]] || [[ ! -d /var/lib/apt/lists || -z "$(ls -A /var/lib/apt/lists 2>/dev/null)" ]]; then
|
||||
msg_info "$(translate "Updating APT package lists...")"
|
||||
pmx_record_execution "Update APT package lists" "apt-get update"
|
||||
apt-get update >/dev/null 2>&1 || apt-get update
|
||||
# Spinner pair: msg_info must be closed before returning.
|
||||
# Without this the next `msg_info` caller spawns a second
|
||||
|
||||
@@ -525,7 +525,6 @@ guided_bridge_repair() {
|
||||
clear
|
||||
msg_info "$(translate "Restarting network service...")"
|
||||
|
||||
pmx_record_execution "Restart networking service" "systemctl restart networking"
|
||||
if systemctl restart networking; then
|
||||
msg_ok "$(translate "Network service restarted successfully")"
|
||||
else
|
||||
|
||||
@@ -175,8 +175,7 @@ remove_subscription_banner() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
kill -TERM "$SPINNER_PID" 2>/dev/null
|
||||
sleep 1
|
||||
stop_spinner
|
||||
|
||||
if [[ "$pve_version" -ge 9 ]]; then
|
||||
if ! whiptail --title "Proxmox VE ${pve_version} Subscription Banner Removal" \
|
||||
@@ -344,11 +343,8 @@ MaxLevelConsole=notice
|
||||
MaxLevelWall=crit
|
||||
EOF
|
||||
|
||||
pmx_record_execution "Restart systemd-journald" "systemctl restart systemd-journald.service"
|
||||
systemctl restart systemd-journald.service > /dev/null 2>&1
|
||||
pmx_record_execution "Vacuum system journal" "journalctl --vacuum-size=64M --vacuum-time=1d"
|
||||
journalctl --vacuum-size=64M --vacuum-time=1d > /dev/null 2>&1
|
||||
pmx_record_execution "Rotate system journal" "journalctl --rotate"
|
||||
journalctl --rotate > /dev/null 2>&1
|
||||
|
||||
msg_ok "$(translate "Journald optimized - Max size: 64M")"
|
||||
@@ -380,7 +376,6 @@ create 0640 root adm
|
||||
copytruncate
|
||||
include /etc/logrotate.d
|
||||
EOF
|
||||
pmx_record_execution "Restart logrotate" "systemctl restart logrotate"
|
||||
systemctl restart logrotate > /dev/null 2>&1
|
||||
|
||||
msg_ok "$(translate "Logrotate optimization completed")"
|
||||
@@ -574,7 +569,6 @@ net.ipv4.tcp_wmem = 8192 65536 16777216
|
||||
net.unix.max_dgram_qlen = 4096
|
||||
EOF
|
||||
|
||||
pmx_record_execution "Apply network sysctl configuration" "sysctl --system"
|
||||
sysctl --system > /dev/null 2>&1
|
||||
|
||||
pmx_write_file /usr/local/sbin/proxmenux-fwbr-tune <<'EOF'
|
||||
@@ -632,12 +626,9 @@ EOF
|
||||
chmod 0644 /etc/udev/rules.d/99-proxmenux-fwbr-tune.rules
|
||||
chown root:root /etc/udev/rules.d/99-proxmenux-fwbr-tune.rules
|
||||
|
||||
pmx_record_execution "Reload systemd configuration" "systemctl daemon-reload"
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
pmx_record_execution "Reload udev rules" "udevadm control --reload-rules"
|
||||
udevadm control --reload-rules >/dev/null 2>&1 || true
|
||||
pmx_enable_service proxmenux-fwbr-tune.service || true
|
||||
pmx_record_execution "Tune existing Proxmox firewall bridge interfaces" "/usr/local/sbin/proxmenux-fwbr-tune"
|
||||
/usr/local/sbin/proxmenux-fwbr-tune >/dev/null 2>&1 || true
|
||||
|
||||
|
||||
@@ -1049,9 +1040,8 @@ install_log2ram_auto() {
|
||||
if [[ "$is_ssd" == true ]]; then
|
||||
msg_ok "$(translate "System disk is SSD or M.2. Proceeding with Log2RAM setup.")"
|
||||
else
|
||||
kill -TERM "$SPINNER_PID" 2>/dev/null
|
||||
sleep 1
|
||||
if whiptail --yesno "$(translate "Do you want to install Log2RAM anyway to reduce log write load?")" 10 70 --title "Log2RAM"; then
|
||||
stop_spinner
|
||||
if whiptail --yesno "$(translate "Do you want to install Log2RAM to reduce log write load?")" 10 70 --title "Log2RAM"; then
|
||||
msg_ok "$(translate "Proceeding with Log2RAM setup on non-SSD disk as requested by user.")"
|
||||
else
|
||||
msg_info2 "$(translate "Log2RAM installation cancelled by user")"
|
||||
@@ -1083,18 +1073,14 @@ install_log2ram_auto() {
|
||||
rm -rf /etc/systemd/system/log2ram.service.d 2>/dev/null || true
|
||||
rm -rf /var/log.hdd /tmp/log2ram 2>/dev/null || true
|
||||
|
||||
pmx_record_execution "Re-execute the systemd manager" "systemctl daemon-reexec"
|
||||
systemctl daemon-reexec >/dev/null 2>&1 || true
|
||||
pmx_record_execution "Reload systemd configuration" "systemctl daemon-reload"
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
pmx_record_execution "Restart cron" "systemctl restart cron"
|
||||
systemctl restart cron >/dev/null 2>&1 || true
|
||||
|
||||
msg_ok "$(translate "Previous installation cleaned")"
|
||||
msg_info "$(translate "Installing Log2RAM from source...")"
|
||||
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
pmx_record_execution "Update package lists for Log2RAM" "apt-get update -qq"
|
||||
apt-get update -qq >/dev/null 2>&1
|
||||
pmx_install_pkg git
|
||||
fi
|
||||
@@ -1107,7 +1093,6 @@ install_log2ram_auto() {
|
||||
|
||||
cd /tmp/log2ram || { msg_error "$(translate "Failed to access log2ram directory")"; return 1; }
|
||||
|
||||
pmx_record_execution "Run the Log2RAM installer" "bash install.sh"
|
||||
if ! bash install.sh >>/tmp/log2ram_install.log 2>&1; then
|
||||
msg_error "$(translate "Failed to run log2ram installer. Check /tmp/log2ram_install.log")"
|
||||
return 1
|
||||
@@ -1159,7 +1144,6 @@ EOF
|
||||
msg_ok "$(translate "PBS API log rotation configured (hourly, size-based)")"
|
||||
fi
|
||||
|
||||
pmx_record_execution "Reload systemd configuration" "systemctl daemon-reload"
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
|
||||
if [[ -f /etc/log2ram.conf ]] && command -v log2ram >/dev/null 2>&1; then
|
||||
@@ -1257,7 +1241,6 @@ EOF
|
||||
chmod 0644 /etc/cron.d/log2ram-auto-sync
|
||||
chown root:root /etc/cron.d/log2ram-auto-sync
|
||||
|
||||
pmx_record_execution "Restart cron" "systemctl restart cron"
|
||||
systemctl restart cron >/dev/null 2>&1 || true
|
||||
msg_ok "$(translate "Auto-sync enabled when /var/log exceeds 80% of") $LOG2RAM_SIZE"
|
||||
|
||||
@@ -1324,7 +1307,6 @@ EOF
|
||||
#msg_ok "$(translate "Backup created:") /etc/systemd/journald.conf.bak.$(date +%Y%m%d-%H%M%S)"
|
||||
msg_ok "$(translate "Journald configuration adjusted to") ${USE_MB}M (Log2RAM ${LOG2RAM_SIZE})"
|
||||
|
||||
pmx_record_execution "Reload systemd configuration" "systemctl daemon-reload"
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
if ! pmx_apply_setting "service-enabled:log2ram" "systemctl is-enabled log2ram" \
|
||||
systemctl enable log2ram; then
|
||||
|
||||
@@ -520,7 +520,6 @@ skip_apt_languages() {
|
||||
echo "$default_locale UTF-8" | pmx_append_file /etc/locale.gen
|
||||
fi
|
||||
msg_info "$(translate "Generating missing locale:") $default_locale"
|
||||
pmx_record_execution "Generate locale" "locale-gen $default_locale"
|
||||
locale-gen "$default_locale"
|
||||
msg_ok "$(translate "Locale generated")"
|
||||
fi
|
||||
@@ -595,7 +594,6 @@ configure_time_sync() {
|
||||
msg_ok "$(translate "Time settings configured - Timezone:") $timezone"
|
||||
register_tool "time_sync" true "$FUNC_VERSION"
|
||||
|
||||
pmx_record_execution "Restart Postfix" "systemctl restart postfix"
|
||||
systemctl restart postfix 2>/dev/null || true
|
||||
else
|
||||
msg_warn "$(translate "Failed to enable automatic time synchronization")"
|
||||
@@ -707,7 +705,6 @@ apply_amd_fixes() {
|
||||
fi
|
||||
|
||||
if command -v proxmox-boot-tool >/dev/null 2>&1; then
|
||||
pmx_record_execution "Refresh Proxmox boot configuration" "proxmox-boot-tool refresh"
|
||||
proxmox-boot-tool refresh >/dev/null 2>&1 && \
|
||||
msg_ok "$(translate "proxmox-boot-tool refreshed")" || \
|
||||
msg_warn "$(translate "Failed to refresh proxmox-boot-tool")"
|
||||
@@ -728,7 +725,6 @@ apply_amd_fixes() {
|
||||
else
|
||||
msg_ok "$(translate "'$added_param' already present in GRUB_CMDLINE_LINUX_DEFAULT")"
|
||||
fi
|
||||
pmx_record_execution "Regenerate GRUB configuration" "update-grub"
|
||||
update-grub >/dev/null 2>&1 && \
|
||||
msg_ok "$(translate "GRUB configuration updated")" || \
|
||||
msg_warn "$(translate "Failed to update GRUB")"
|
||||
@@ -867,7 +863,6 @@ net.unix.max_dgram_qlen = 4096
|
||||
EOF
|
||||
|
||||
|
||||
pmx_record_execution "Apply network sysctl configuration" "sysctl --system"
|
||||
sysctl --system > /dev/null 2>&1
|
||||
|
||||
pmx_write_file /usr/local/sbin/proxmenux-fwbr-tune <<'EOF'
|
||||
@@ -927,12 +922,9 @@ EOF
|
||||
chmod 0644 /etc/udev/rules.d/99-zz-proxmenux-fwbr-tune.rules
|
||||
chown root:root /etc/udev/rules.d/99-zz-proxmenux-fwbr-tune.rules
|
||||
|
||||
pmx_record_execution "Reload systemd configuration" "systemctl daemon-reload"
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
pmx_record_execution "Reload udev rules" "udevadm control --reload-rules"
|
||||
udevadm control --reload-rules >/dev/null 2>&1 || true
|
||||
pmx_enable_service proxmenux-fwbr-tune.service || true
|
||||
pmx_record_execution "Tune existing Proxmox firewall bridge interfaces" "/usr/local/sbin/proxmenux-fwbr-tune"
|
||||
/usr/local/sbin/proxmenux-fwbr-tune >/dev/null 2>&1 || true
|
||||
|
||||
|
||||
@@ -1039,7 +1031,6 @@ EOF
|
||||
fi
|
||||
|
||||
# Apply changes
|
||||
pmx_record_execution "Apply sysctl configuration" "sysctl --system"
|
||||
sysctl --system > /dev/null 2>&1
|
||||
|
||||
if [ "$reboot_needed" -eq 1 ]; then
|
||||
@@ -1135,7 +1126,6 @@ EOF
|
||||
|
||||
msg_info "$(translate "Updating package lists...")"
|
||||
|
||||
pmx_record_execution "Update package lists for Ceph" "apt-get update"
|
||||
update_output=$(apt-get update 2>&1)
|
||||
update_exit_code=$?
|
||||
|
||||
@@ -1964,14 +1954,11 @@ enable_vfio_iommu() {
|
||||
|
||||
# Update initramfs and bootloader
|
||||
msg_info "$(translate "Updating initramfs, GRUB, and EFI boot, patience...")"
|
||||
pmx_record_execution "Regenerate initramfs" "update-initramfs -u -k all"
|
||||
update-initramfs -u -k all > /dev/null 2>&1
|
||||
|
||||
if [[ "$uses_zfs" == true ]]; then
|
||||
pmx_record_execution "Refresh Proxmox boot configuration" "proxmox-boot-tool refresh"
|
||||
proxmox-boot-tool refresh > /dev/null 2>&1
|
||||
else
|
||||
pmx_record_execution "Regenerate GRUB configuration" "update-grub"
|
||||
update-grub > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
@@ -2626,7 +2613,6 @@ configure_fastfetch() {
|
||||
echo '{"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", "modules": []}' | pmx_write_file "$fastfetch_config"
|
||||
fi
|
||||
|
||||
pmx_record_execution "Generate Fastfetch configuration" "fastfetch --gen-config-force"
|
||||
fastfetch --gen-config-force > /dev/null 2>&1
|
||||
|
||||
while true; do
|
||||
@@ -2752,7 +2738,6 @@ configure_fastfetch() {
|
||||
|
||||
msg_ok "$(translate "Fastfetch now displays: System optimised by: ProxMenux")"
|
||||
|
||||
pmx_record_execution "Generate Fastfetch configuration" "fastfetch --gen-config"
|
||||
fastfetch --gen-config > /dev/null 2>&1
|
||||
msg_ok "$(translate "Fastfetch configuration updated")"
|
||||
|
||||
@@ -3155,9 +3140,7 @@ configure_log2ram() {
|
||||
rm -rf /etc/systemd/system/log2ram.service.d 2>/dev/null || true
|
||||
rm -rf /var/log.hdd /tmp/log2ram 2>/dev/null || true
|
||||
|
||||
pmx_record_execution "Reload systemd configuration" "systemctl daemon-reload"
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
pmx_record_execution "Restart cron" "systemctl restart cron"
|
||||
systemctl restart cron >/dev/null 2>&1 || true
|
||||
msg_ok "$(translate "Previous installation cleaned")"
|
||||
|
||||
@@ -3165,7 +3148,6 @@ configure_log2ram() {
|
||||
msg_info "$(translate "Installing Log2RAM from GitHub...")"
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
msg_info "$(translate "Installing required package: git")"
|
||||
pmx_record_execution "Update package lists for Log2RAM" "apt-get update -qq"
|
||||
apt-get update -qq >/dev/null 2>&1
|
||||
pmx_install_pkg git
|
||||
fi
|
||||
@@ -3178,7 +3160,6 @@ configure_log2ram() {
|
||||
fi
|
||||
|
||||
cd /tmp/log2ram || { msg_error "$(translate "Failed to access log2ram directory")"; return 1; }
|
||||
pmx_record_execution "Run the Log2RAM installer" "bash install.sh"
|
||||
if ! bash install.sh >>/tmp/log2ram_install.log 2>&1; then
|
||||
msg_error "$(translate "Failed to run log2ram installer. Check /tmp/log2ram_install.log")"
|
||||
return 1
|
||||
@@ -3230,7 +3211,6 @@ EOF
|
||||
msg_ok "$(translate "PBS API log rotation configured (hourly, size-based)")"
|
||||
fi
|
||||
|
||||
pmx_record_execution "Reload systemd configuration" "systemctl daemon-reload"
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
|
||||
if [[ -f /etc/log2ram.conf ]] && command -v log2ram >/dev/null 2>&1; then
|
||||
@@ -3370,7 +3350,6 @@ EOF
|
||||
chown -R www-data:www-data /var/log.hdd/pveproxy
|
||||
chmod 0750 /var/log.hdd/pveproxy
|
||||
|
||||
pmx_record_execution "Restart cron" "systemctl restart cron"
|
||||
systemctl restart cron >/dev/null 2>&1 || true
|
||||
if ! pmx_apply_setting "service-enabled:log2ram" "systemctl is-enabled log2ram" \
|
||||
systemctl enable log2ram; then
|
||||
|
||||
Reference in New Issue
Block a user