2016-10-20 100 views
0

我正在執行一個無限循環,從命令行執行一個使用CURL的休息調用。我將其餘的o/p重定向到一個文件。我在命令的末尾附加了一個「&」,以便它進入後臺。 不幸的是,終端退出了。 但我看到該過程仍在不斷寫入o/p文件。 但是,我看不到任何使用命令作業運行的後臺作業。 即使我使用ps/lsof/fuser來查找進程ID,以便我可以手動殺死它。 但是沒有任何命令給我返回進程ID。 我甚至試圖將文件更改爲只讀模式,但我仍然看到文件不斷增長。查找後臺進程的進程ID

最後我發現chattr命令會限制寫入的文件。

但是在這種情況下,我會在哪裏找到負責的進程ID。

touch /var/log/test_mon_vm.log;while true; echo "start....." >>/var/log/test_mon_vm.log;echo $(date) >> /var/log/test_mon_vm.log; do /usr/bin/curl -I --user rhqadmin:rhqadmin http://localhost:7080/rest/plugins?name=Samba 2>/dev/null | head -n 1 >> /var/log/test_mon_vm.log; echo "end....." >> /var/log/test_mon_vm.log;echo >>/var/log/test_mon_vm.log;echo >>/var/log/test_mon_vm.log;sleep 1;done & 
+0

你可以提及'while'循環代碼嗎? – Prabhu

回答

0

您可以找到

ps -fea|grep [your USER] 

的ID,然後在搜索腳本列表中,會有很多人,如果你使用的腳本爲腳本的名稱替換您的用戶

0

您可以使用fg

Background Processes in linux

一旦後臺進程是在前臺你可以用它殺死它ctrl+c

我希望這有助於!祝你今天愉快!

+0

當我使用命令**作業** –

0

您可以嘗試

ps aux | grep "command-you-ran" 

例如

ps aux | grep "curl" 
+0

時沒有看到後臺進程,我在進程表中看不到該進程。 –