我有一台安装了 OpenVPN 守护进程的家庭 NAS 服务器,但是当没有人主动使用 NAS 上的 VPN 或文件时,我希望将硬盘保持在空闲模式(这样它们的使用寿命更长)。
OpenVPN 守护进程会阻止这种情况,因为它不断将其 PID 写入文件:
root@NAS:~# iotop
Total DISK READ: 0.00 B/s | Total DISK WRITE: 3.80 K/s
Current DISK READ: 0.00 B/s | Current DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
725 be/4 nobody 0.00 B/s 3.80 K/s 0.00 % 0.00 % openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_gp]
4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_par_gp]
这很烦人,因为我整夜都能听到硬盘旋转的声音,我担心因为不断的旋转会缩短它们的寿命。
这是我在 iotop 中看到的唯一使用硬盘的进程,所以我想这是我的硬盘在夜间不断旋转的唯一原因。
答案1
该--writepid /run/openvpn/server.pid
选项仅在进程启动时写入 PID 一次。另一方面,该--status /run/openvpn/server.status 10
选项每 10 秒写入一次状态文件。
然而,这两个文件都被写入基于 RAM 的文件系统/run
.可能是日志记录吸引了您;消息通常写入下面的文件中/var/log
,我建议很可能正是这些消息使您的磁盘保持唤醒状态。
--daemon [progname]
所有初始化功能完成后成为守护进程。此选项将导致所有消息和错误输出发送到 syslog 文件(例如)[...] 如果存在/var/log/messages
其中一个选项,它将取代 syslog 重定向。--log
然后,
--log file
将日志消息输出到文件,包括输出到标准输出/标准错误它是由调用的脚本生成的。如果文件已经存在,它将被截断。如果还指定了--daemon
或 ,则此选项[...]将取代系统日志输出--inetd
--log-append file
将日志消息附加到文件。如果文件不存在,则会创建该文件。此选项的行为与此完全相同,--log
只是它附加到日志文件而不是截断日志文件。
如果您愿意放弃日志记录,我想您可以使用它--log-append /dev/null
,这将使您的磁盘进入睡眠状态。另一方面,您一开始就不应该进行太多日志记录;值得确定 OpenVPN 正在写入什么来保持磁盘唤醒。lsof
可能对此有用:
# As root
watch -n1 'lsof -f -p $(pidof openvpn | tr " " ,) 2>&1 | grep -v /lib/'