Ubuntu

為 git fetch / ubuntu motd 引起的殭屍尋求乾淨的解決方案

  • March 26, 2012

我在同一台 [Ubuntu 10.04] 伺服器上執行 jenkins 和 gitosis。Jenkins 從 gitosis 提供的儲存庫中獲取 git 送出(也在同一台伺服器上執行)。實際上,很多回購,因為詹金斯有很多工作。時不時我會遇到一個殭屍who程序,其根本原因似乎是一些特定於 Ubuntu 的腳本來更新 /etc/motd。這是今天早些時候程序表的(部分)樣子:

jenkins  30042     1  0 Mar19 ?        00:00:00 git fetch -t gitosis@example.com:testRepo.git +refs/heads/*:refs/remotes/origin/*
jenkins  30060 30042  0 Mar19 ?        00:00:00 ssh gitosis@example.com git-upload-pack 'testRepo.git'
root     30066   703  0 Mar19 ?        00:00:00 sshd: gitosis [priv]
root     30096 30066  0 Mar19 ?        00:00:00 sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/run-parts --lsbsysinit /etc/update-motd.d > /var/run/motd.new
root     30097 30096  0 Mar19 ?        00:00:00 /bin/run-parts --lsbsysinit /etc/update-motd.d
root     30129 30097  0 Mar19 ?        00:00:00 /bin/sh /etc/update-motd.d/50-landscape-sysinfo
root     30148 30129  0 Mar19 ?        00:00:00 /usr/bin/python /usr/bin/landscape-sysinfo
root     30451 30148  0 Mar19 ?        00:00:00 [who] <defunct>

為了澄清它,我基本上只是殺死了殭屍的每個父母who,然後殭屍就消失了。

關於如何防止這種情況發生或在發生時優雅地處理它的任何想法?

有時有什麼方法可以禁用這些 motd 腳本嗎?就像,只有詹金斯在做什麼git fetch?實際上,如果我可以在 gitosis 使用者嘗試 SSH 時以某種方式禁用 motd 腳本(例如,每當發生任何 git 客戶端/伺服器互動時),那將是完美的。

也許 Bash 有一種簡單的方法可以殺死任何執行了一個多小時的 git 程序?啊。

我通常喜歡這些腳本提供的方便的 motd,所以我不想完全禁用它們。如果他們自己超時當然會很好。為什麼每次登錄都會更新motd?一天一次似乎足夠了。

我真的不想切換到 gitolite 或不同的 git 伺服器,否則 gitosis 可以正常工作。我不想切換到 SSH 以外的其他協議;gitosis 依賴於 SSH。由於 gitosis 在同一台伺服器上執行,我應該能夠使用file:///語法引用 git 儲存庫。我現在試一試。更新…不,這不起作用,因為它繞過了 gitolite 並且不允許詹金斯將標籤推回上游。我可以給詹金斯更多的ACL,但我寧願堅持使用gitolite。

旁注:無濟於事,因為在建立 SSH 連接後出現問題。

如果我沒看錯,我喜歡認為我是..

然後你要求一種非常迂迴的方式來禁用update-motdubuntu。

看看/etc/cron.d/etc/cron.d/update-motd如果你找到了,把它 mv 到 /tmp。那應該阻止它。

我認為您不應該終止長時間執行的程序。我確實認為禁用不會造成任何傷害update-motd

你可能想看看裡面/etc/update-motd.d

/usr/sbin/update-motd 使用 run-parts 以字典順序執行 /etc/update-motd.d 中的每個腳本,將結果與消息頭 /etc/motd.tail 連接起來。

這樣,使用者,甚至其他軟體包都可以將腳本放入 /etc/update-motd.d 以影響 MOTD。(從<https://wiki.ubuntu.com/UpdateMotd>提取)

這是其他人和你一樣討厭 update-motd 的人的博文;)

引用自:https://serverfault.com/questions/373623