From 05a0fa3215a190fc9fad8648fb9e92c1b4be496f Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 30 Jul 2026 13:07:29 +1000 Subject: [PATCH] v3.6.136 --- syno_hdd_db.sh | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 2089b95..9b6eef1 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -29,7 +29,7 @@ # /var/packages/StorageManager/target/ui/storage_panel.js -scriptver="v3.6.135" +scriptver="v3.6.136" script=Synology_HDD_db repo="007revad/Synology_HDD_db" scriptname=syno_hdd_db @@ -260,11 +260,13 @@ fi detect_scheduler(){ + # SYNO.Core.TaskS is regular scheduled task + # SYNO.Core.Event is triggered scheduled task local pid=$PPID local comm while [[ "$pid" != "1" && -n "$pid" ]]; do comm=$(ps -p "$pid" -o comm=) - [[ "$comm" =~ (SYNO.Core.TaskS|SYNO.Core.Event|systemd-run|sched|crond) ]] && return 0 + [[ "$comm" =~ (SYNO.Core.TaskS|SYNO.Core.Event|crond) ]] && return 0 pid=$(ps -p "$pid" -o ppid= | tr -d ' ') done return 1 @@ -358,12 +360,12 @@ fi if [[ -f "/var/lib/disk-compatibility/${model}_host_v7.version" ]]; then echo -n "- ${model}_host_v7 version " cat "/var/lib/disk-compatibility/${model}_host_v7.version" - echo -e "\n" + #echo -e "\n" fi if [[ -f "/var/lib/disk-compatibility/${model}_host.version" ]]; then echo -n "- ${model}_host version " cat "/var/lib/disk-compatibility/${model}_host.version" - echo -e "\n" + #echo -e "\n" fi @@ -375,6 +377,19 @@ fi #echo "" # To keep output readable +# Check if script is running in an interactive shell or from schedule +if [[ -t 1 ]]; then # Running in terminal + echo -e "- Running in an interactive shell (user terminal).\n" +else + # Check if running via task scheduler + if detect_scheduler; then + sch_task="yes" + color="no" + fi + echo -e "- Running from a scheduled task.\n" +fi + + # shellcheck disable=SC2317 # Don't warn about unreachable commands in this function pause(){ # When debugging insert pause command where needed @@ -2272,11 +2287,15 @@ if [[ $ssd == "yes" ]]; then elif [[ ${#ssds_writemostly[@]} -gt "0" ]]; then # User specified their fast drive(s) echo -e "\nSetting slow internal HDDs state to write_mostly" - for idrive in "${internal_drives[@]}"; do - if [[ ! ${ssds_writemostly[*]} =~ $idrive ]]; then - set_writemostly writemostly "$idrive" - fi - done + if [[ ${ssds_writemostly[*]} =~ "nvme" ]]; then + echo "NVMe drives don't have DSM system or swap partitions" + else + for idrive in "${internal_drives[@]}"; do + if [[ ! ${ssds_writemostly[*]} =~ $idrive ]]; then + set_writemostly writemostly "$idrive" + fi + done + fi else # Get list of internal HDDs and qty of SSDs @@ -2301,6 +2320,8 @@ if [[ $ssd == "yes" ]]; then for idrive in "${internal_hdds[@]}"; do set_writemostly writemostly "$idrive" done + else + echo -e "\nNo internal 2.5 inch SSDs found so not setting write mostly on the HDDs" fi fi fi