[英]How can I kill someone else's Python processes on a server without root access?
我今天在下班時間工作,發現有人在共享機器上使用了不合理數量的 memory 和 GPU memory,而他們在假期離開時留下了一個進程。 我知道他們備份了他們的結果,並且腳本可以隨時恢復,所以我想殺死它以運行我自己的東西。
服務器正在運行 CentOS 版本 7.9.2009。
如果重要的話,我想殺死的腳本正在運行啟用了檢查點的 PyTorch 和 TensorFlow 訓練腳本。
我嘗試的一種方法涉及分配如此多的 memory 以至於其他進程只需正常運行就會得到 OOM,但它並不十分成功。
l = []
n = int(1e5)
import time
while n > 0:
try:
l.append(' ' * n)
except:
n //= 8
time.sleep(10)
它填滿了 memory 並很快交換,但不會在那里停留很長時間。 問題似乎是 Linux 殺死了進程,而不是 Python 引發異常並觸發except
子句,而是顯示一行:
Killed
我不知道這是否是最好的方法,但至少我嘗試過。
如果服務器得到妥善管理,您不能:
這是安全的基礎。 但是,如果您認為您的同事正在濫用系統資源並因此阻止其他用戶工作,您應該能夠向管理團隊發送一條消息來解釋這一點。 他們當然可以終止進程,但你不能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.