我在 Ubuntu 系统上设置了 NUT,upssched-cmd
我想在其中运行一些脚本来关闭设备。目前,我已upsmon.conf
设置为upssched-cmd
以用户身份运行,root
但我希望能够在需要时进行更改。
我发现upssched-cmd
运行时,一些正常的用户相关环境变量没有设置。我无法使用它$HOME
来检索或保存文件,也无法用它$LOGNAME
来记录发生错误时发生的情况。
为什么upssched-cmd
不设置这些?是因为它不是在终端中运行的交互式进程,而它们仅在终端会话中使用吗?
鉴于$HOME
没有设置,在这种情况下是否有其他方法来检索当前用户的主目录?
当upssched-cmd
被调用时,环境如下:
MEMORY_PRESSURE_WRITE=c29tZSAyMDAwMDAgMjAwMDAwMAA=
PIDFILE=/run/nut/upsmon.pid
PWD=/
SYSTEMD_EXEC_PID=1331
NOTIFYTYPE=ONBATT
LANG=C.UTF-8
MEMORY_PRESSURE_WATCH=/sys/fs/cgroup/system.slice/nut-monitor.service/memory.pressure
MODE=netserver
INVOCATION_ID=f025fd10826a4bac950193c70322fba0
USER=root
SHLVL=0
UPSNAME=ophiuchia@localhost
JOURNAL_STREAM=8:16568
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/snap/bin
_=/usr/bin/env