summaryrefslogtreecommitdiffstats
path: root/smartd.8.in
diff options
context:
space:
mode:
Diffstat (limited to 'smartd.8.in')
-rw-r--r--smartd.8.in928
1 files changed, 928 insertions, 0 deletions
diff --git a/smartd.8.in b/smartd.8.in
new file mode 100644
index 0000000..2a8501c
--- /dev/null
+++ b/smartd.8.in
@@ -0,0 +1,928 @@
+.ig
+Copyright (C) 2002-10 Bruce Allen
+Copyright (C) 2004-23 Christian Franke
+
+SPDX-License-Identifier: GPL-2.0-or-later
+
+$Id: smartd.8.in 5521 2023-07-24 16:44:49Z chrfranke $
+
+..
+.\" Macros borrowed from pages generated with Pod::Man
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp 0.4v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.if t .ft CW
+.if n .ft R
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Use groff extension \(aq (apostrophe quote, ASCII 0x27) if possible
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.TH SMARTD 8 "CURRENT_SVN_DATE" "CURRENT_SVN_VERSION" "SMART Monitoring Tools"
+.SH NAME
+\fBsmartd\fP \- SMART Disk Monitoring Daemon
+.Sp
+.SH SYNOPSIS
+.B smartd [options]
+.Sp
+.SH DESCRIPTION
+.\" %IF NOT OS ALL
+.\"! [This man page is generated for the OS_MAN_FILTER version of smartmontools.
+.\"! It does not contain info specific to other platforms.]
+.\"! .PP
+.\" %ENDIF NOT OS ALL
+\fBsmartd\fP is a daemon that monitors the Self-Monitoring, Analysis and
+Reporting Technology (SMART) system built into most ATA/SATA and SCSI/SAS
+hard drives and solid-state drives.
+The purpose of SMART is to monitor the reliability of the hard drive
+and predict drive failures, and to carry out different types of drive
+self-tests.
+This version of \fBsmartd\fP is compatible with
+ACS-3, ACS-2, ATA8-ACS, ATA/ATAPI-7 and earlier standards
+(see \fBREFERENCES\fP below).
+.PP
+\fBsmartd\fP will attempt to enable SMART monitoring on ATA devices
+(equivalent to \fBsmartctl \-s on\fP) and polls these and SCSI devices
+every 30 minutes (configurable), logging SMART errors and changes of
+SMART Attributes via the SYSLOG interface. The default location for
+these SYSLOG notifications and warnings is system-dependent
+(typically \fB/var/log/messages\fP or \fB/var/log/syslog\fP).
+To change this default location, please see the \*(Aq\-l\*(Aq
+command-line option described below.
+.PP
+In addition to logging to a file, \fBsmartd\fP can also be configured
+to send email warnings if problems are detected. Depending upon the
+type of problem, you may want to run self-tests on the disk, back up
+the disk, replace the disk, or use a manufacturer's utility to force
+reallocation of bad or unreadable disk sectors. If disk problems are
+detected, please see the \fBsmartctl\fP manual page and the
+\fBsmartmontools\fP web page/FAQ for further guidance.
+.PP
+If you send a \fBUSR1\fP signal to \fBsmartd\fP it will immediately
+check the status of the disks, and then return to polling the disks
+every 30 minutes.
+See the \*(Aq\-i\*(Aq option below for additional details.
+.PP
+\fBsmartd\fP can be configured at start-up using the configuration
+file \fB/usr/local/etc/smartd.conf\fP (Windows: \fBEXEDIR/smartd.conf\fP).
+If the configuration file is subsequently modified, \fBsmartd\fP
+can be told to re-read the configuration file by sending it a
+\fBHUP\fP signal, for example with the command:
+.br
+\fBkillall \-HUP smartd\fP.
+.br
+.\" %IF OS Windows
+(Windows: See NOTES below.)
+.\" %ENDIF OS Windows
+.PP
+On startup, if \fBsmartd\fP finds a syntax error in the configuration
+file, it will print an error message and then exit. However if
+\fBsmartd\fP is already running, then is told with a \fBHUP\fP signal
+to re-read the configuration file, and then find a syntax error in
+this file, it will print an error message and then continue, ignoring
+the contents of the (faulty) configuration file, as if the \fBHUP\fP
+signal had never been received.
+.PP
+When \fBsmartd\fP is running in debug mode, the \fBINT\fP signal
+(normally generated from a shell with CONTROL-C) is treated in the
+same way as a \fBHUP\fP signal: it makes \fBsmartd\fP reload its
+configuration file.
+To exit \fBsmartd\fP use CONTROL-\e.
+.\" %IF OS Windows
+(Windows: CONTROL-Break).
+.\" %ENDIF OS Windows
+.\" %IF ENABLE_SYSTEMD_NOTIFY
+.PP
+[Linux only] If \fBsmartd\fP is started as a \fBsystemd\fP(1) service and
+\*(AqType=Notify\*(Aq is specified in the service file, the service manager
+is notified after successful startup.
+Other state changes are reported via systemd notify STATUS messages.
+Notification of successful reloads (after \fBHUP\fP signal) is not supported.
+To detect this process start-up type, \fBsmartd\fP checks whether the
+environment variable \*(AqNOTIFY_SOCKET\*(Aq is set.
+Note that it is required to set the \*(Aq\-n\*(Aq (\*(Aq\-\-nofork\*(Aq)
+option in the \*(AqExecStart=/usr/local/sbin/smartd\*(Aq command line
+if \*(AqType=Notify\*(Aq is used.
+.\" %ENDIF ENABLE_SYSTEMD_NOTIFY
+.PP
+On startup, in the absence of the configuration file
+\fB/usr/local/etc/smartd.conf\fP, the \fBsmartd\fP daemon first scans for all
+devices that support SMART. The scanning is done as follows:
+.\" %IF OS Linux
+.IP \fBLINUX:\fP 9
+Examine all entries \fB"/dev/hd[a\-t]"\fP for IDE/ATA
+devices, and \fB"/dev/sd[a\-z]"\fP, \fB"/dev/sd[a\-z][a\-z]"\fP
+for ATA/SATA or SCSI/SAS devices.
+Disks behind RAID controllers are not included.
+.Sp
+If directive \*(Aq\-d nvme\*(Aq
+.\" %IF ENABLE_NVME_DEVICESCAN
+or no \*(Aq\-d\*(Aq directive
+.\" %ENDIF ENABLE_NVME_DEVICESCAN
+is specified, examine all entries \fB"/dev/nvme[0\-99]"\fP for NVMe devices.
+.\" %ENDIF OS Linux
+.\" %IF OS FreeBSD
+.IP \fBFREEBSD:\fP 9
+Authoritative list of disk devices is obtained from SCSI (CAM) and ATA
+subsystems.
+Disks behind RAID controllers are not included.
+.\" %ENDIF OS FreeBSD
+.\" %IF OS NetBSD OpenBSD
+.IP \fBNETBSD/OPENBSD:\fP 9
+Authoritative list of disk devices is obtained from sysctl
+\*(Aqhw.disknames\*(Aq.
+.\" %ENDIF OS NetBSD OpenBSD
+.\" %IF OS Solaris
+.IP \fBSOLARIS:\fP 9
+Examine all entries \fB"/dev/rdsk/*s0"\fP for IDE/ATA and SCSI disk
+devices, and entries \fB"/dev/rmt/*"\fP for SCSI tape devices.
+.\" %ENDIF OS Solaris
+.\" %IF OS Darwin
+.IP \fBDARWIN:\fP 9
+The IOService plane is scanned for ATA block storage devices.
+.\" %ENDIF OS Darwin
+.\" %IF OS Windows Cygwin
+.IP \fBWINDOWS\fP: 9
+Examine all entries \fB"/dev/sd[a\-z]"\fP, \fB"/dev/sd[a\-c][a\-z]"\fP
+and \fB"/dev/sdd[a\-x]"\fP ("\\\\.\\PhysicalDrive[0\-127]") for
+IDE/(S)ATA and SCSI disk devices.
+.Sp
+If a 3ware 9000 controller is installed, examine all entries
+\fB"/dev/sdX,N"\fP for the first logical drive (\*(Aqunit\*(Aq
+\fB"/dev/sdX"\fP) and all physical disks (\*(Aqports\*(Aq \fB",N"\fP)
+detected behind this controller.
+Same for a second controller if present.
+.Sp
+If directive \*(Aq\-d csmi\*(Aq or no \*(Aq\-d\*(Aq directive is specified,
+examine all entries \fB"/dev/csmi[0\-9],N"\fP for drives behind an Intel
+ICHxR controller with RST driver.
+.Sp
+Disks behind Areca RAID controllers are not included.
+.Sp
+If directive \*(Aq\-d nvme\*(Aq
+.\" %IF ENABLE_NVME_DEVICESCAN
+or no \*(Aq\-d\*(Aq directive
+.\" %ENDIF ENABLE_NVME_DEVICESCAN
+is specified, examine all entries \fB"/dev/sd[...]"\fP (see above)
+and all entries \fB"/dev/nvme[0\-9]"\fP for NVMe devices.
+.\" %ENDIF OS Windows Cygwin
+.PP
+\fBsmartd\fP then monitors
+for \fIall\fP possible SMART errors (corresponding to the \*(Aq\-a\*(Aq
+Directive in the configuration file; see the \fBsmartd.conf\fP(5) man page).
+.Sp
+.SH OPTIONS
+.TP
+.B \-A PREFIX, \-\-attributelog=PREFIX
+Writes \fBsmartd\fP attribute information (normalized and raw
+attribute values) to files \*(AqPREFIX\*(Aq\*(AqMODEL\-SERIAL.ata.csv\*(Aq
+or \*(AqPREFIX\*(Aq\*(AqVENDOR\-MODEL\-SERIAL.scsi.csv\*(Aq.
+At each check cycle attributes are logged as a line of semicolon separated
+triplets of the form "attribute-ID;attribute-norm-value;attribute-raw-value;".
+For SCSI devices error counters and temperature recorded in the form
+"counter-name;counter-value;".
+Each line is led by a date string of the form "yyyy-mm-dd HH:MM:SS"
+(in local time).
+.Sp
+.\" %IF ENABLE_ATTRIBUTELOG
+If this option is not specified, attribute information is written to files
+\*(Aq/usr/local/var/lib/smartmontools/attrlog.MODEL\-SERIAL.ata.csv\*(Aq.
+.br
+[NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+If \*(Aq\-\*(Aq is specified as the argument, attribute log files are
+disabled.
+.Sp
+.\" %ENDIF ENABLE_ATTRIBUTELOG
+MODEL and SERIAL are build from drive identify information, invalid
+characters are replaced by underline.
+.Sp
+If the PREFIX has the form \*(Aq/path/dir/\*(Aq (e.g.\&
+\*(Aq/var/lib/smartd/\*(Aq), then files \*(AqMODEL\-SERIAL.ata.csv\*(Aq are
+created in directory \*(Aq/path/dir\*(Aq.
+If the PREFIX has the form \*(Aq/path/name\*(Aq (e.g.\&
+\*(Aq/var/lib/misc/attrlog\-\*(Aq),
+then files \*(AqnameMODEL\-SERIAL.ata.csv\*(Aq are created in directory
+\*(Aq/path/\*(Aq.
+The path must be absolute, except if debug mode is enabled.
+.TP
+.B \-B [+]FILE, \-\-drivedb=[+]FILE
+[ATA only] Read the drive database from FILE. The new database replaces
+the built in database by default. If \*(Aq+\*(Aq is specified, then the new
+entries prepend the built in entries.
+Please see the \fBsmartctl\fP(8) man page for further details.
+.TP
+.B \-c FILE, \-\-configfile=FILE
+Read \fBsmartd\fP configuration Directives from FILE, instead of from
+the default location \fB/usr/local/etc/smartd.conf\fP
+(Windows: \fBEXEDIR/smartd.conf\fP).
+If FILE does \fBnot\fP exist, then \fBsmartd\fP will print an error
+message and exit with nonzero status.
+Thus, \*(Aq\-c /usr/local/etc/smartd.conf\*(Aq can be used to verify the
+existence of the default configuration file.
+.Sp
+By using \*(Aq\-\*(Aq for FILE, the configuration is read from standard input.
+This is useful for commands like:
+.br
+.B echo /dev/sdb \-m user@home \-M test | smartd \-c \- \-q onecheck
+.br
+to perform quick and simple checks without a configuration file.
+.\" %IF ENABLE_CAPABILITIES
+.TP
+.B \-C, \-\-capabilities[=mail]
+[Linux only] Use libcap-ng to drop unneeded Linux process \fBcapabilities\fP(7).
+The following capabilities are kept in the effective and permissive sets:
+CAP_SYS_ADMIN, CAP_SYS_RAWIO, CAP_MKNOD.
+If the \*(Aq\-u, \-\-warn_as_user\*(Aq option (see below) is used with a
+non-privileged user or group, the following capabilities are also kept:
+CAP_SETGID, CAP_SETUID.
+The capability bounding set is cleared.
+.Sp
+[NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+Mail notification is no longer suppressed if capabilities are dropped.
+It depends on the local MTA whether mail could be send from a root process
+with all capabilities dropped.
+It works with the \fBpostfix\fP MTA.
+.Sp
+If \*(Aq\-\-capabilities=mail\*(Aq is specified, the following
+capabilities are added to the bounding set:
+CAP_SETGID, CAP_SETUID, CAP_CHOWN, CAP_FOWNER, CAP_DAC_OVERRIDE.
+This allows one to send mail with the \fBexim\fP MTA.
+.\" %ENDIF ENABLE_CAPABILITIES
+.TP
+.B \-d, \-\-debug
+Runs \fBsmartd\fP in "debug" mode. In this mode, it displays status
+information to STDOUT rather than logging it to SYSLOG and does not
+\fBfork\fP(2) into the background and detach from the controlling
+terminal. In this mode, \fBsmartd\fP also prints more verbose
+information about what it is doing than when operating in "daemon"
+mode. In this mode, the \fBINT\fP signal (normally generated from a
+terminal with CONTROL-C) makes \fBsmartd\fP reload its configuration
+file. Please use CONTROL-\e to exit
+.\" %IF OS Windows
+(Windows: CONTROL-Break).
+.Sp
+[Windows only] The "debug" mode can be toggled by the command
+\fBsmartd sigusr2\fP.
+A new console for debug output is opened when debug mode is enabled.
+.\" %ENDIF OS Windows
+.TP
+.B \-D, \-\-showdirectives
+Prints a list (to STDOUT) of all the possible Directives which may
+appear in the configuration file /usr/local/etc/smartd.conf, and then exits.
+These Directives are described in the \fBsmartd.conf\fP(5) man page.
+They may appear in the configuration file following the device name.
+.TP
+.B \-h, \-\-help, \-\-usage
+Prints usage message to STDOUT and exits.
+.TP
+.B \-i N, \-\-interval=N
+Sets the interval between disk checks to \fIN\fP seconds, where
+\fIN\fP is a decimal integer. The minimum allowed value is ten and
+the maximum is the largest positive integer that can be represented on
+your system (often 2^31\-1). The default is 1800 seconds.
+.br
+[NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+The interval could be overridden with the \*(Aq\-c i=N\*(Aq directive,
+see \fBsmartd.conf\fP(5) man page.
+.Sp
+Note that the superuser can make \fBsmartd\fP check the status of the
+disks at any time by sending it the \fBSIGUSR1\fP signal, for example
+with the command:
+.br
+.B kill \-SIGUSR1 <pid>
+.br
+where \fB<pid>\fP is the process id number of \fBsmartd\fP. One may
+also use:
+.br
+.B killall \-USR1 smartd
+.br
+for the same purpose.
+.br
+.\" %IF OS Windows
+(Windows: See NOTES below.)
+.\" %ENDIF OS Windows
+.TP
+.B \-l FACILITY, \-\-logfacility=FACILITY
+Uses syslog facility FACILITY to log the messages from \fBsmartd\fP.
+Here FACILITY is one of \fIlocal0\fP, \fIlocal1\fP, ..., \fIlocal7\fP,
+or \fIdaemon\fP [default]. If this command-line option is not used,
+then by default messages from \fBsmartd\fP are logged to the facility
+\fIdaemon\fP.
+.Sp
+If you would like to have \fBsmartd\fP messages logged somewhere other
+than the default location, include (for example) \*(Aq\-l local3\*(Aq in its
+start up argument list.
+Tell the syslog daemon to log all messages from facility \fBlocal3\fP
+to (for example) \*(Aq/var/log/smartd.log\*(Aq.
+.Sp
+For more detailed information, please refer to the man pages for
+the local syslog daemon, typically \fBsyslogd\fP(8), \fBsyslog-ng\fP(8)
+or \fBrsyslogd\fP(8).
+.\" %IF OS Cygwin
+.Sp
+Cygwin: If no \fBsyslogd\fP is running, the \*(Aq\-l\*(Aq option has no effect.
+In this case, all \fBsyslog\fP messages are written to Windows event log.
+.\" %ENDIF OS Cygwin
+.\" %IF OS Windows
+.Sp
+Windows: Some \fBsyslog\fP functionality is implemented
+internally in \fBsmartd\fP as follows: If no \*(Aq\-l\*(Aq option
+(or \*(Aq\-l daemon\*(Aq) is specified, messages are written to Windows
+event log or to file \fB./smartd.log\fP if event log is not available
+(access denied).
+By specifying other values of FACILITY, log output is redirected as follows:
+\*(Aq\-l local0\*(Aq to file \fB./smartd.log\fP,
+\*(Aq\-l local1\*(Aq to standard output (redirect with \*(Aq>\*(Aq to any file),
+\*(Aq\-l local2\*(Aq to standard error,
+\*(Aq\-l local[3\-7]\*(Aq: to file \fB./smartd[1\-5].log\fP.
+.\" %ENDIF OS Windows
+.TP
+.B \-n, \-\-no\-fork
+Do not fork into background; this is useful when executed from modern
+init methods like initng, minit, supervise or systemd.
+.\" %IF OS Cygwin
+.Sp
+On Cygwin, this allows running \fBsmartd\fP as service via cygrunsrv,
+see NOTES below.
+.\" %ENDIF OS Cygwin
+.\" %IF OS Windows
+.Sp
+On Windows, this option is not available, use \*(Aq\-\-service\*(Aq instead.
+.\" %ENDIF OS Windows
+.TP
+.B \-p NAME, \-\-pidfile=NAME
+Writes pidfile \fINAME\fP containing the \fBsmartd\fP Process ID
+number (PID). To avoid symlink attacks make sure the directory to
+which pidfile is written is only writable for root. Without this
+option, or if the \-\-debug option is given, no PID file is written on
+startup. If \fBsmartd\fP is killed with a maskable signal then the
+pidfile is removed.
+.TP
+.B \-q WHEN, \-\-quit=WHEN
+Specifies when, if ever, \fBsmartd\fP should exit. The valid
+arguments are to this option are:
+.Sp
+.I nodev
+\- Exit if there are no devices to monitor, or if any errors are found
+at startup in the configuration file.
+This is the default.
+.Sp
+.I errors
+\- Exit if there are no devices to monitor, or if any errors are found
+in the configuration file /usr/local/etc/smartd.conf at startup or whenever it
+is reloaded.
+.Sp
+.I nodevstartup
+\- Exit if there are no devices to monitor at startup. But continue
+to run if no devices are found whenever the configuration file is
+reloaded.
+.Sp
+.I never
+\- Only exit if a fatal error occurs (no remaining system memory,
+invalid command line arguments).
+In this mode, even if there are no devices to monitor, or if the configuration
+file \fB/usr/local/etc/smartd.conf\fP has errors, \fBsmartd\fP will continue
+to run, waiting to load a configuration file listing valid devices.
+.Sp
+.I nodev0
+\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+Same as \*(Aqnodev\*(Aq, except that the exit status is 0 if there are no
+devices to monitor.
+.Sp
+.I nodev0startup
+\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+Same as \*(Aqnodevstartup\*(Aq, except that the exit status is 0 if there are no
+devices to monitor.
+.Sp
+.I errors,nodev0
+\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+Same as \*(Aqerrors\*(Aq, except that the exit status is 0 if there are no
+devices to monitor.
+.Sp
+.I onecheck
+\- Start \fBsmartd\fP in debug mode, then register devices, then check
+device's SMART status once, and then exit with zero exit status if all
+of these steps worked correctly.
+.Sp
+This last option is intended for \*(Aqdistribution-writers\*(Aq who want to
+create automated scripts to determine whether or not to automatically
+start up \fBsmartd\fP after installing smartmontools. After starting
+\fBsmartd\fP with this command-line option, the distribution's install
+scripts should wait a reasonable length of time (say ten seconds). If
+\fBsmartd\fP has not exited with zero status by that time, the script
+should send \fBsmartd\fP a SIGTERM or SIGKILL and assume that
+\fBsmartd\fP will not operate correctly on the host. Conversely, if
+\fBsmartd\fP exits with zero status, then it is safe to run
+\fBsmartd\fP in normal daemon mode. If \fBsmartd\fP is unable to
+monitor any devices or encounters other problems then it will return
+with non-zero exit status.
+.Sp
+.I showtests
+\- Start \fBsmartd\fP in debug mode, then register devices, then write
+a list of future scheduled self tests to stdout, and then exit with zero
+exit status if all of these steps worked correctly.
+Device's SMART status is not checked.
+.Sp
+This option is intended to test whether the \*(Aq\-s REGEX\*(Aq directives in
+smartd.conf will have the desired effect. The output lists the next test
+schedules, limited to 5 tests per type and device. This is followed by a
+summary of all tests of each device within the next 90 days.
+.TP
+.B \-r TYPE, \-\-report=TYPE
+Intended primarily to help
+.B smartmontools
+developers understand the behavior of
+.B smartmontools
+on non-conforming or poorly-conforming hardware. This option reports
+details of
+\fBsmartd\fP
+transactions with the device. The option can be used multiple times.
+When used just once, it shows a record of the ioctl() transactions
+with the device. When used more than once, the detail of these ioctl()
+transactions are reported in greater detail. The valid arguments to
+this option are:
+.Sp
+.I ioctl
+\- report all ioctl() transactions.
+.Sp
+.I ataioctl
+\- report only ioctl() transactions with ATA devices.
+.Sp
+.I scsiioctl
+\- report only ioctl() transactions with SCSI devices.
+.Sp
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.I nvmeioctl
+\- report only ioctl() transactions with NVMe devices.
+.Sp
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+Any argument may include a positive integer to specify the level of
+detail that should be reported. The argument should be followed by a
+comma then the integer with no spaces. For example, \fIataioctl,2\fP
+The default level is 1, so \*(Aq\-r ataioctl,1\*(Aq and
+\*(Aq\-r ataioctl\*(Aq are equivalent.
+.TP
+.B \-s PREFIX, \-\-savestates=PREFIX
+Reads/writes \fBsmartd\fP state information from/to files
+\*(AqPREFIX\*(Aq\*(AqMODEL\-SERIAL.ata.state\*(Aq or
+\*(AqPREFIX\*(Aq\*(AqVENDOR\-MODEL\-SERIAL.scsi.state\*(Aq.
+This preserves SMART attributes, drive min and max temperatures (\-W directive),
+info about last sent warning email
+(\-m directive), and the time of next check of the self-test REGEXP
+(\-s directive) across boot cycles.
+.Sp
+.\" %IF ENABLE_SAVESTATES
+If this option is not specified, state information is maintained in files
+\*(Aq/usr/local/var/lib/smartmontools/smartd.MODEL\-SERIAL.ata.state\*(Aq
+for ATA devices and
+\*(Aq/usr/local/var/lib/smartmontools/smartd.VENDOR\-MODEL\-SERIAL.scsi.state\*(Aq
+for SCSI devices.
+.br
+[NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+If \*(Aq\-\*(Aq is specified as the argument, state files are disabled.
+.Sp
+.\" %ENDIF ENABLE_SAVESTATES
+MODEL and SERIAL are build from drive identify information, invalid
+characters are replaced by underline.
+.Sp
+If the PREFIX has the form \*(Aq/path/dir/\*(Aq (e.g.\&
+\*(Aq/var/lib/smartd/\*(Aq), then files \*(AqMODEL\-SERIAL.ata.state\*(Aq are
+created in directory \*(Aq/path/dir\*(Aq.
+If the PREFIX has the form \*(Aq/path/name\*(Aq (e.g.\&
+\*(Aq/var/lib/misc/smartd\-\*(Aq),
+then files \*(AqnameMODEL\-SERIAL.ata.state\*(Aq are created in directory
+\*(Aq/path/\*(Aq.
+The path must be absolute, except if debug mode is enabled.
+.Sp
+The state information files are read on smartd startup. The files are
+always (re)written after reading the configuration file, before rereading
+the configuration file (SIGHUP), before smartd shutdown, and after a check
+forced by SIGUSR1. After a normal check cycle, a file is only rewritten if
+an important change (which usually results in a SYSLOG output) occurred.
+.TP
+.B \-w PATH, \-\-warnexec=PATH
+Run the executable PATH instead of the default script when smartd
+needs to send warning messages. PATH must point to an executable binary
+file or script.
+The default script is
+.\" %IF NOT OS Windows
+\fB/usr/local/etc/smartd_warning.sh\fP.
+.\" %ENDIF NOT OS Windows
+.\" %IF OS ALL
+(Windows: EXEDIR/smartd_warning.cmd)
+.\" %ENDIF OS ALL
+.\" %IF OS Windows
+.\"! \fBEXEDIR/smartd_warning.cmd\fP.
+.\" %ENDIF OS Windows
+.\" %IF OS Darwin FreeBSD Linux NetBSD OpenBSD Solaris Cygwin
+.TP
+.B \-u USER[:GROUP], \-\-warn\-as\-user=USER[:GROUP]
+[NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+Run the warning script as a non-privileged user instead of root.
+The USER and optional GROUP may be specified as numeric ids or names.
+If no GROUP is specified, the default group of USER is used instead.
+.Sp
+If a warning occurs, a child process is created with \fBfork\fP(2).
+This process closes all inherited file descriptors, connects stdio to
+/dev/null, changes the user and group ids, removes any supplementary
+group ids and then calls the \fBpopen\fP(3) function from the standard
+library.
+.Sp
+If \*(Aq0:0\*(Aq is specified, user and group are not changed, but the
+remaining actions still apply.
+.Sp
+If \*(Aq-\*(Aq is specified, \fBpopen\fP(3) is called directly.
+This is the default.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD OpenBSD Solaris Cygwin
+.\" %IF OS Windows
+.TP
+.B \-u MODE, \-\-warn\-as\-user=MODE
+[Windows only: NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+Run the warning script with a modified access token.
+The valid arguments to this option are:
+.Sp
+.I restricted
+\- Run the warning script with a restricted access token.
+The local \*(AqAdministrator\*(Aq group and most privileges
+(all except \*(AqSeChangeNotifyPrivilege\*(Aq) are removed.
+This is not effective if the current user is the local \*(AqSYSTEM\*(Aq
+or \*(AqAdministrator\*(Aq account.
+If this is the case, \fBsmartd\fP logs an error message during startup
+and exits.
+.Sp
+.I unchanged
+\- Run the warning script without changing the access token.
+This is the default.
+.TP
+.B \-\-service
+[Windows only] Enables \fBsmartd\fP to run as a Windows service.
+The option must be specified in the service command line as the first
+argument.
+It should not be used from console.
+See NOTES below for details.
+.\" %ENDIF OS Windows
+.TP
+.B \-V, \-\-version, \-\-license, \-\-copyright
+Prints version, copyright, license, home page and SVN revision
+information for your copy of \fBsmartd\fP to STDOUT and then exits.
+.Sp
+.SH EXAMPLES
+.B smartd
+.br
+Runs the daemon in forked mode. This is the normal way to run
+\fBsmartd\fP.
+Entries are logged to SYSLOG.
+.Sp
+.B smartd \-d \-i 30
+.br
+Run in foreground (debug) mode, checking the disk status
+every 30 seconds.
+.Sp
+.B smartd \-q onecheck
+.br
+Registers devices, and checks the status of the devices exactly
+once.
+The exit status (the shell
+.B $?
+variable) will be zero if all went well, and nonzero if no devices
+were detected or some other problem was encountered.
+.\" %IF ENABLE_INITSCRIPT
+.Sp
+Note that \fBsmartmontools\fP provides a start-up script in
+\fB/usr/local/etc/rc.d/init.d/smartd\fP which is responsible for starting and
+stopping the daemon via the normal init interface. Using this script,
+you can start \fBsmartd\fP by giving the command:
+.br
+.B /usr/local/etc/rc.d/init.d/smartd start
+.br
+and stop it by using the command:
+.br
+.B /usr/local/etc/rc.d/init.d/smartd stop
+.\" %ENDIF ENABLE_INITSCRIPT
+.Sp
+.SH CONFIGURATION
+The syntax of the \fBsmartd.conf\fP(5) file is discussed separately.
+.Sp
+.SH NOTES
+\fBsmartd\fP
+will make log entries at loglevel
+.B LOG_INFO
+if the Normalized SMART Attribute values have changed, as reported using the
+.B \*(Aq\-t\*(Aq, \*(Aq\-p\*(Aq,
+or
+.B \*(Aq\-u\*(Aq
+Directives.
+For example:
+.br
+.B \*(AqDevice: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93\*(Aq
+.br
+Note that in this message, the value given is the \*(AqNormalized\*(Aq not the
+\*(AqRaw\*(Aq Attribute value (the disk temperature in this case is about 22
+Celsius). The
+.B \*(Aq\-R\*(Aq
+and
+.B \*(Aq\-r\*(Aq
+Directives modify this behavior, so that the information is printed
+with the Raw values as well, for example:
+.br
+.B \*(AqDevice: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed from 94 [Raw 22] to 93 [Raw 23]\*(Aq
+.br
+Here the Raw values are the actual disk temperatures in Celsius. The
+way in which the Raw values are printed, and the names under which the
+Attributes are reported, is governed by the various
+.B \*(Aq\-v Num,Description\*(Aq
+Directives described previously.
+.PP
+Please see the
+.B smartctl
+manual page for further explanation of the differences between
+Normalized and Raw Attribute values.
+.PP
+\fBsmartd\fP
+will make log entries at loglevel
+.B LOG_CRIT
+if a SMART Attribute has failed, for example:
+.br
+.B \*(AqDevice: /dev/sdc, Failed SMART Attribute: 5 Reallocated_Sector_Ct\*(Aq
+.br
+This loglevel is used for reporting enabled by the
+.B \*(Aq\-H\*(Aq, \-f\*(Aq, \*(Aq\-l\ selftest\*(Aq,
+and
+.B \*(Aq\-l\ error\*(Aq
+Directives. Entries reporting failure of SMART Prefailure Attributes
+should not be ignored: they mean that the disk is failing. Use the
+.B smartctl
+utility to investigate.
+.\" %IF OS Solaris
+.PP
+Under Solaris with the default \fB/etc/syslog.conf\fP configuration,
+messages below loglevel \fBLOG_NOTICE\fP will \fBnot\fP be recorded.
+Hence all \fBsmartd\fP messages with loglevel \fBLOG_INFO\fP will be
+lost. If you want to use the existing daemon facility to log all
+messages from \fBsmartd\fP, you should change \fB/etc/syslog.conf\fP
+from:
+.Vb 1
+ ...;daemon.notice;... /var/adm/messages
+.Ve
+to read:
+.Vb 1
+ ...;daemon.info;... /var/adm/messages
+.Ve
+Alternatively, you can use a local facility to log messages: please
+see the \fBsmartd\fP \*(Aq\-l\*(Aq command-line option described above.
+.\" %ENDIF OS Solaris
+.\" %IF OS Cygwin
+.PP
+The Cygwin Version of \fBsmartd\fP can be run as a service via the
+cygrunsrv tool.
+.\" %IF ENABLE_INITSCRIPT
+The start-up script provides Cygwin-specific commands to install and
+remove the service:
+.br
+.B /usr/local/etc/rc.d/init.d/smartd install [options]
+.br
+.B /usr/local/etc/rc.d/init.d/smartd remove
+.br
+The service can be started and stopped by the start-up script as usual
+(see \fBEXAMPLES\fP above).
+.\" %ENDIF ENABLE_INITSCRIPT
+.\" %ENDIF OS Cygwin
+.\" %IF OS Windows
+.PP
+On Windows, the log messages are written to the event log or to a file.
+See documentation of the \*(Aq\-l FACILITY\*(Aq option above for details.
+.PP
+On Windows, the following built-in commands can be used to control
+\fBsmartd\fP, if running as a daemon:
+.PP
+\*(Aq\fBsmartd status\fP\*(Aq \- check status
+.br
+\*(Aq\fBsmartd stop\fP\*(Aq \- stop smartd
+.br
+\*(Aq\fBsmartd reload\fP\*(Aq \- reread config file
+.br
+\*(Aq\fBsmartd restart\fP\*(Aq \- restart smartd
+.br
+\*(Aq\fBsmartd sigusr1\fP\*(Aq \- check disks now
+.br
+\*(Aq\fBsmartd sigusr2\fP\*(Aq \- toggle debug mode
+.PP
+The Windows Version of \fBsmartd\fP has buildin support for services:
+.PP
+\*(Aq\fBsmartd install [options]\fP\*(Aq installs a service
+named "smartd" (display name "SmartD Service") using the command line
+\*(Aq/INSTALLPATH/smartd.exe \-\-service [options]\*(Aq.
+This also installs smartd.exe as a event message file for the Windows
+event viewer.
+.PP
+This does not work if the option \*(Aq--warn-as-user=restricted\*(Aq is
+specified because the local \*(AqSYSTEM\*(Aq account cannot be restricted.
+The service must then be manually reconfigured to run as a another user
+which is a member of the local \*(AqAdministrator\*(Aq group.
+.PP
+\*(Aq\fBsmartd remove\fP\*(Aq can later be used to remove the service and
+event message entries from the registry.
+.PP
+Upon startup, the smartd service changes the working directory
+to its own installation path. If smartd.conf and blat.exe are stored
+in this directory, no \*(Aq\-c\*(Aq option and \*(Aq\-M exec\*(Aq directive
+is needed.
+.PP
+The debug mode (\*(Aq\-d\*(Aq, \*(Aq\-q onecheck\*(Aq) does not work if
+smartd is running as service.
+.PP
+The service can be controlled as usual with Windows commands \*(Aqnet\*(Aq
+or \*(Aqsc\*(Aq (\*(Aq\fBnet start smartd\fP\*(Aq,
+\*(Aq\fBnet stop smartd\fP\*(Aq).
+.PP
+Pausing the service (\*(Aq\fBnet pause smartd\fP\*(Aq) sets the interval
+between disk checks (\*(Aq\-i N\*(Aq) to infinite.
+.PP
+Continuing the paused service (\*(Aq\fBnet continue smartd\fP\*(Aq) resets the
+interval and rereads the configuration file immediately (like \fBSIGHUP\fP).
+The \*(AqPARAMCHANGE\*(Aq service control command (\*(Aq\fBsc control smartd
+paramchange\fP\*(Aq) has the same effect regardless of paused state.
+.PP
+Continuing a still running service (\*(Aq\fBnet continue smartd\fP\*(Aq without
+preceding \*(Aq\fBnet pause smartd\fP\*(Aq) does not reread configuration but
+checks disks immediately (like \fBSIGUSR1\fP).
+.\" %ENDIF OS Windows
+.Sp
+.SH LOG TIMESTAMP TIMEZONE
+When \fBsmartd\fP makes log entries, these are time-stamped. The time
+stamps are in the computer's local time zone, which is generally set
+using either the environment variable \*(Aq\fBTZ\fP\*(Aq or using a
+time-zone file such as \fB/etc/localtime\fP. You may wish to change
+the timezone while \fBsmartd\fP is running (for example, if you carry
+a laptop to a new time-zone and don't reboot it). Due to a bug in the
+\fBtzset\fP(3) function of many unix standard C libraries, the
+time-zone stamps of \fBsmartd\fP might not change. For some systems,
+\fBsmartd\fP will work around this problem \fIif\fP the time-zone is
+set using \fB/etc/localtime\fP. The work-around \fIfails\fP if the
+time-zone is set using the \*(Aq\fBTZ\fP\*(Aq variable (or a file that it
+points to).
+.Sp
+.SH EXIT STATUS
+The exit status (return value) of \fBsmartd\fP can have the following values:
+.TP
+.B 0:
+Daemon startup successful, or \fBsmartd\fP was killed by a SIGTERM
+(or in debug mode, a SIGQUIT).
+.TP
+.B 1:
+Commandline did not parse.
+.TP
+.B 2:
+There was a syntax error in the config file.
+.TP
+.B 3:
+Forking the daemon failed.
+.TP
+.B 4:
+Couldn't create PID file.
+.TP
+.B 5:
+Config file does not exist (only returned in conjunction with the \*(Aq\-c\*(Aq
+option).
+.TP
+.B 6:
+Config file exists, but cannot be read.
+.TP
+.B 8:
+\fBsmartd\fP
+ran out of memory during startup.
+.TP
+.B 10:
+An inconsistency was found in \fBsmartd\fP's internal data
+structures. This should never happen. It must be due to either a
+coding or compiler bug. \fIPlease\fP report such failures to
+smartmontools developers, see REPORTING BUGS below.
+.TP
+.B 16:
+A device explicitly listed in
+.B /usr/local/etc/smartd.conf
+can't be monitored.
+.TP
+.B 17:
+\fBsmartd\fP
+didn't find any devices to monitor.
+.br
+[NEW EXPERIMENTAL SMARTD 7.3 FEATURE]
+This could be changed to \fB0\fP (success) with one of the
+\*(Aq-q *nodev0*\*(Aq options, see above.
+.TP
+.B 254:
+When in daemon mode,
+\fBsmartd\fP
+received a SIGINT or SIGQUIT. (Note that in debug mode, SIGINT has
+the same effect as SIGHUP, and makes \fBsmartd\fP reload its
+configuration file. SIGQUIT has the same effect as SIGTERM and causes
+\fBsmartd\fP to exit with zero exit status.
+.TP
+.B 132 and above
+\fBsmartd\fP
+was killed by a signal that is not explicitly listed above. The exit
+status is then 128 plus the signal number. For example if
+\fBsmartd\fP
+is killed by SIGKILL (signal 9) then the exit status is 137.
+.Sp
+.\" %IF NOT OS Windows
+.SH FILES
+.TP
+.B /usr/local/sbin/smartd
+full path of this executable.
+.TP
+.B /usr/local/etc/smartd.conf
+configuration file (see \fBsmartd.conf\fP(5) man page).
+.TP
+.B /usr/local/etc/smartd_warning.sh
+script run on warnings (see \*(Aq\-w\*(Aq option above and \*(Aq\-M exec\*(Aq
+directive on \fBsmartd.conf\fP(5) man page).
+.\" %IF ENABLE_SMARTDPLUGINDIR
+.TP
+.B /usr/local/etc/smartd_warning.d/
+plugin directory for smartd warning script (see \*(Aq\-m\*(Aq directive on
+\fBsmartd.conf\fP(5) man page).
+.\" %ENDIF ENABLE_SMARTDPLUGINDIR
+.\" %IF ENABLE_DRIVEDB
+.TP
+.B /usr/local/var/lib/smartmontools/drivedb.h
+drive database (see \*(Aq\-B\*(Aq option).
+.\" %ENDIF ENABLE_DRIVEDB
+.TP
+.B /usr/local/etc/smart_drivedb.h
+optional local drive database (see \*(Aq\-B\*(Aq option).
+.Sp
+.\" %ENDIF NOT OS Windows
+.SH AUTHORS
+\fBBruce Allen\fP (project initiator),
+.br
+\fBChristian Franke\fP (project manager, Windows port and all sort of things),
+.br
+\fBDouglas Gilbert\fP (SCSI subsystem),
+.br
+\fBVolker Kuhlmann\fP (moderator of support and database mailing list),
+.br
+\fBGabriele Pohl\fP (wiki & development team support),
+.br
+\fBAlex Samorukov\fP (FreeBSD port and more, new Trac wiki).
+.PP
+Many other individuals have made contributions and corrections,
+see AUTHORS, ChangeLog and repository files.
+.PP
+The first smartmontools code was derived from the smartsuite package,
+written by Michael Cornwell and Andre Hedrick.
+.Sp
+.SH REPORTING BUGS
+To submit a bug report, create a ticket in smartmontools wiki:
+.br
+<\fBhttps://www.smartmontools.org/\fP>.
+.br
+Alternatively send the info to the smartmontools support mailing list:
+.br
+<\fBhttps://listi.jpberlin.de/mailman/listinfo/smartmontools-support\fB>.
+.Sp
+.SH SEE ALSO
+\fBsmartd.conf\fP(5), \fBsmartctl\fP(8).
+.\" %IF ENABLE_UPDATE_SMART_DRIVEDB
+.br
+\fBupdate-smart-drivedb\fP(8).
+.\" %ENDIF ENABLE_UPDATE_SMART_DRIVEDB
+.\" %IF ENABLE_SYSTEMD_NOTIFY
+.br
+\fBsystemd.exec\fP(5).
+.\" %ENDIF ENABLE_SYSTEMD_NOTIFY
+.Sp
+.SH REFERENCES
+Please see the following web site for more info:
+<\fBhttps://www.smartmontools.org/\fP>
+.PP
+An introductory article about smartmontools is \fIMonitoring Hard
+Disks with SMART\fP, by Bruce Allen, Linux Journal, January 2004,
+pages 74\(en77.
+See <\fBhttps://www.linuxjournal.com/article/6983\fP>.
+.PP
+If you would like to understand better how SMART works, and what it
+does, a good place to start is with Sections 4.8 and 6.54 of the first
+volume of the \*(AqAT Attachment with Packet Interface-7\*(Aq (ATA/ATAPI-7)
+specification Revision 4b. This documents the SMART functionality which the
+\fBsmartmontools\fP utilities provide access to.
+.PP
+The functioning of SMART was originally defined by the SFF-8035i
+revision 2 and the SFF-8055i revision 1.4 specifications. These are
+publications of the Small Form Factors (SFF) Committee.
+.PP
+Links to these and other documents may be found on the Links page of the
+\fBsmartmontools\fP Wiki at <\fBhttps://www.smartmontools.org/wiki/Links\fP>.
+.Sp
+.SH PACKAGE VERSION
+CURRENT_SVN_VERSION CURRENT_SVN_DATE CURRENT_SVN_REV
+.br
+$Id: smartd.8.in 5521 2023-07-24 16:44:49Z chrfranke $