#!/bin/bash # # PSU hard reset (power cycle) script. # # Power cycle the entire tray by setting the PSU hotswap reset (GPIO218) to high # # Global variable: PSU_HARDRESET_DELAY specifies the number of seconds to wait # before pulling the trigger. If not specified or zero, the script power cycles # immediately. main() { # Sleep PSU_HARDRESET_DELAY seconds local psu_delay=$((PSU_HARDRESET_DELAY)) if ((psu_delay > 0)); then echo "Sleeping ${psu_delay} seconds before PSU hard reset!" sleep "${psu_delay}" fi gpioset gpiochip6 26=1 } # Exit without running main() if sourced return 0 2>/dev/null main "$@"