2014-07-21 59 views
-1

我正在嘗試記錄用戶在Linux(任何發行版)操作系統中打開/關閉的應用程序。每當應用程序(如firefox等)打開和關閉時,是否有執行腳本(Java,Python等)的方法?如何在Linux的每個應用程序的開始和結束處執行腳本?

+0

那麼,你在做什麼?你有沒有試過Shell腳本,或者是什麼? – Fallenreaper

+0

我知道的是每個進程從init(或其子)分叉。所以我想知道如何利用這個事實在fork之前和進程被銷燬之後運行一個小的日誌腳本。 – user1836386

+0

你知道成千上萬的應用程序/可執行文件會定期執行,包括維護應用程序等。我不確定你的目標是記錄每一個應用程序或某些應用程序。 – Fallenreaper

回答

2

作爲一般功能 - 沒有。

執行一個腳本來記錄執行,本身就是一個需要記錄的程序執行,因此你會有一個遞歸問題。但是,如果你想記錄特定的程序,你可以實現一個shell腳本來代替這些特定程序的可執行文件(firefox,python等),然後在那個shell腳本中你可以在調用實際的日誌之前記錄執行程序。

然而

  1. 用戶仍然能夠調用原始程序沒有日誌記錄,如果他們知道的路徑。
  2. 新腳本將是一個安全問題(使系統不太安全),因此不會被推薦。

所以總之,一個壞主意。

+1

+1,因爲問題的遞歸性質。不知道會運行什麼,但它會運行,每次應用程序將運行,並咀嚼所有的內存很快 – Fallenreaper

+0

是的,我想到了。但就像你說的,不是萬無一失的。 無論如何,我可以使用「pstree」命令可能使用什麼? 或添加一些東西到init本身(這是可能的嗎?) – user1836386

+0

init只是一個程序(可能現在有點特殊的程序,但只是一個程序),其中分叉進程 - 這裏沒有魔法。pstree只是從/ proc和/或/ sys這是一個只讀的數據 - 確保你可以監控,但不能保證你能夠足夠快地查看所有隻存在於瞬間的程序 - 而且你也會在那裏看到你自己的日誌程序。 – Soren

相關問題