DE(Gnome3)에서 스마트 알림을 보고 싶습니다. 따라서 알림 전송을 사용하여 로그인한 모든 사용자에게 알리는 사용자 정의 스크립트를 실행하도록 smartd를 구성했습니다.
smartd.conf:
/dev/sda -m root -M test -M exec /etc/smartmontools/smartd_warning.d/notify -a -n standby,10,q
smartd_warning.d/알림:
#!/usr/bin/env sh
IFS=$'\n'
for LINE in `w -hs`
do
USER=`echo $LINE | awk '{print $1}'`
USER_ID=`id -u $USER`
DISP_ID=`echo $LINE | awk '{print $8}'`
sudo -u $USER DISPLAY=$DISP_ID DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus notify-send "S.M.A.R.T Error ($SMARTD_FAILTYPE)" "$SMARTD_MESSAGE" --icon=dialog-warning
done
smartd
시스템에 로그인할 때 재부팅해야만 제대로 작동합니다 . 분명히 smartd
사용자가 시스템에 로그인하기 전에 시작되기 때문에 시작 시 작동하지 않습니다 .
[Unit]
Description=Self Monitoring and Reporting Technology (SMART) Daemon
Documentation=man:smartd(8) man:smartd.conf(5)
[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/smartmontools
ExecStart=/usr/sbin/smartd -n $smartd_opts
ExecReload=/bin/kill -HUP $MAINPID
StandardOutput=syslog
[Install]
WantedBy=multi-user.target
이러한 알림을 보기 위해 smartd 서비스를 사용자 세션에 바인딩하려면 어떻게 해야 합니까?
답변1
다음을 기준 WantedBy
으로 변경해 볼 수 있습니다 .graphical.target
default.target
이것.
간단한 설명은 multi-user.target
시스템이 작동 중임을 의미하지만 사용자가 로그인했다는 의미는 아니며 graphical.target
로컬 사용자가 로그인했다는 의미이며 default.target
범용 별칭이지만 graphical.target
다른 값에 대한 별칭일 수도 있습니다.
또는 단순히 알림을 놓치지 않았는지 확인하고 싶다면 echo
알림 보내기를 통해 보내는 파일에 동일한 데이터를 보낼 수도 있습니다. 다음과 같아야 합니다. (
echo "S.M.A.R.T Error ($SMARTD_FAILTYPE)" "$SMARTD_MESSAGE" >> /"YourPathHere"/smartd.log
스크립트가 쓸 수 있는 경로를 사용해야 합니다)