我目前正在我的服务器上观看某个进程,并想查看它自启动以来总共使用了多少带宽。我不想知道它当前的用法,也不想nethogs
/nload
帮我。
我有一个 bash 脚本基本上运行这个:
#!/bin/bash
[...]
while true; do
str="broadcast "`randArrayElement "messages[@]"`
server_send_message $str
sleep $interval
done
Run Code Online (Sandbox Code Playgroud)
现在我想将它作为 systemd 服务运行,我的服务脚本如下所示:
[Unit]
Description=Announcer
After=network.target
[Service]
ExecStart=/usr/local/bin/somescript &; disown
ExecStop=/usr/bin/kill -9 `cat /tmp/somescript.pid`
Type=forking
PIDFile=/tmp/somescript.pid
[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我通过service somescript start
它运行此服务时,它正在运行,但由于 while true 循环,我的终端卡在启动脚本中:
? somescript.service - somescript service
Loaded: loaded (/etc/systemd/system/somescript.service; disabled; vendor preset: enabled)
Active: activating (start) since Wed 2016-08-17 12:22:34 CEST; 43s ago
Control: 17395 (somescript)
CGroup: /system.slice/somescript.service
??17395 /bin/bash /usr/local/bin/somescript &; disown
??17409 sleep 600
Run Code Online (Sandbox Code Playgroud)
如何将此脚本作为服务运行而不会卡在“启动”/ while true …
我设置 smartd 来向我发送邮件报告,以防我的磁盘出现故障。不幸的是,我每天都会收到具有相同(不变)值的相同属性的垃圾邮件:
The following warning/error was logged by the smartd daemon:
Device: /dev/sdb [SAT], 1 Offline uncorrectable sectors
Device info:
ST32000542AS, S/N:XXXXX, WWN:5-XXXXXX-XXXXXXXX, FW:XXXX, 2.00 TB
Run Code Online (Sandbox Code Playgroud)
我完全意识到具有不可纠正扇区的磁盘所隐含的危险。(此磁盘用于 RAID10 配置)
我只是不想每天收到相同的电子邮件,我只想在值发生变化/增加时收到一封电子邮件。
这是我的当前配置/etc/smartd.conf
:
DEVICESCAN -d removable -n standby -t -m root -M exec /usr/share/smartmontools/smartd-runner
Run Code Online (Sandbox Code Playgroud)
为了实现 smartd 的预期行为,我必须改变什么?
bandwidth ×1
bash ×1
disk ×1
file-server ×1
hard-disk ×1
hardware ×1
linux ×1
networking ×1
shell-script ×1
smart ×1
systemd ×1
ubuntu ×1