diff options
author | Bart Van Assche <bvanassche@google.com> | 2022-11-23 20:04:46 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-11-23 20:04:46 +0000 |
commit | 62b99c09a4bbb75fea6c309c77ebf856323d908c (patch) | |
tree | 207cdb23f8257e270a30143fde23d2033901581f /scripts/scsi_stop | |
parent | 8718296061e35ba33bf88847e7498f3d7e38f8f1 (diff) | |
parent | 3c61bd9e26bf930f865e28e7eef48856653d1c98 (diff) | |
download | sg3_utils-62b99c09a4bbb75fea6c309c77ebf856323d908c.tar.gz |
Merge remote-tracking branch 'aosp/upstream-main' into HEAD am: 448b67b18a am: d39ef90544 am: 3c61bd9e26
Original change: https://android-review.googlesource.com/c/platform/external/sg3_utils/+/2312210
Change-Id: I0362cffa263ba632a3e2058f8f50f32e024b2cc3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'scripts/scsi_stop')
-rwxr-xr-x | scripts/scsi_stop | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/scripts/scsi_stop b/scripts/scsi_stop new file mode 100755 index 00000000..76807234 --- /dev/null +++ b/scripts/scsi_stop @@ -0,0 +1,58 @@ +#!/bin/bash + +################################################ +# +# Spin down the given SCS disk(s). +# +# SCSI disks (or disks that understand SCSI commands) +# are assumed. By default, the immediate bit is set so the +# command should return immediately. The disk however will +# take 10 seconds or more to spin down. The '-w' option +# causes each stop to wait until the disk reports that it +# has stopped. +# +# This script assumes the sg3_utils package is installed. +# +############################################### + +verbose="" +immediate="-i" + +usage() +{ + echo "Usage: scsi_stop [-h] [-v] [-w] <device>+" + echo " where:" + echo " -h, --help print usage message" + echo " -v, --verbose more verbose output" + echo " -w, --wait wait for each stop to complete" + echo "" + echo "Send SCSI START STOP UNIT command to stop each <device>" +} + +opt="$1" +while test ! -z "$opt" -a -z "${opt##-*}"; do + opt=${opt#-} + case "$opt" in + h|-help) usage ; exit 0 ;; + v|-verbose) verbose="-v" ;; + w|-wait) immediate="" ;; + *) echo "Unknown option: -$opt " ; exit 1 ;; + esac + shift + opt="$1" +done + +if [ $# -lt 1 ] + then + usage + exit 1 +fi + +for i +do +# Use '-r' (read-only) otherwise using a block device node +# (e.g. 'sg_start 0 /dev/sdb') can result in a change of state +# event causing the disk to spin up again immediately. + echo "sg_start -r $immediate 0 $verbose $i" + sg_start -r $immediate 0 $verbose $i +done |