我有一个重要的过程,OOM Killer 看中了一个不幸的结果。我想让这种可能性降低。所有谷歌出现的东西都是这样的:
echo -1000 > /proc/${PID}/oom_score_adj
而我想在程序源本身中做到这一点。是否有库调用或系统调用来执行此操作,还是我唯一的选择getpid()
, open()
, write()
& close()
?
我有一个重要的过程,OOM Killer 看中了一个不幸的结果。我想让这种可能性降低。所有谷歌出现的东西都是这样的:
echo -1000 > /proc/${PID}/oom_score_adj
而我想在程序源本身中做到这一点。是否有库调用或系统调用来执行此操作,还是我唯一的选择getpid()
, open()
, write()
& close()
?
我查看了Exiting a pipeline if a former command fails但我正在寻找一个更通用的解决方案来解决这个问题:
chlist -q -v -m -r $sourcelist | \
grep '^USER:' | \
chlist -q -v -f - $superlist
问题是如果第一个 chlist 失败而不是没有输入到第二个 chlist 确实非常糟糕。
除了将第一个 chlist 的输出放入临时文件然后检查退出状态(例如根本不使用管道)之外,是否有任何解决方案可以阻止第二个 chlist 运行?
我们在 F5 负载平衡器后面有 sendmail 服务器。负载平衡器不断打开/关闭到每个邮件服务器的连接,以查看它是否正在应答。这意味着我们的 syslog 文件中充满了类似的行:
9 月 19 日 11:13:29 mailserver-X sm-mta[12643]: w8JGDTmi012643: lb5a [10.11.12.13] 在连接到 MTA 期间没有发出 MAIL/EXPN/VRFY/ETRN
9 月 19 日 11:13:29 mailserver-X sm-mta[12819]: w8JGDSLk0012819: lb5b [10.11.12.14] 在连接到 MTA 期间没有发出 MAIL/EXPN/VRFY/ETRN
有没有办法让 sendmail 悄悄地忽略这些?
当前正在运行 sendmail-8.14.5,但如果需要修复此问题会更新。