有時候,咱們會想知道某臺機器上面跑了什麼程序。shell
當程序部署到IIS上面的時候,咱們只須要打開IIS一看,就知道有多少個站點在運行了。服務器
當咱們在CentOS上面部署的時候,就沒那麼的直觀了。網絡
固然對於熟悉Linux命令的小夥伴仍是很容易的。code
下面就來看看如何在CentOS上面查看對應的信息。進程
說明,本文的全部環境都是基於Jexus的。部署
查看的命令以下table
ps -ef | grep AppHost
輸出結果class
UID PID PPID C STIME TTY TIME CMD root 12651 51914 0 Sep30 ? 00:19:38 [AppHost:crm] /data/project/crm/crm.dll --environment Staging root 35237 51914 0 Sep29 ? 00:10:26 [AppHost:product] /data/project/product/product.dll --environment Staging hwq 40167 39650 0 10:45 pts/0 00:00:00 grep --color=auto AppHost
其中,UID那行標題是手動加上去的。配置
下面是各字段的說明終端
字段 | 說明 |
---|---|
UID | 用戶名 |
PID | 進程的ID |
PPID | 父進程ID |
C | 進程佔用CPU的百分比 |
STIME | 進程啓動到如今的時間 |
TTY | 該進程在那個終端上運行,若與終端無關,則顯示? 若爲pts/0等,則表示由網絡鏈接主機進程。 |
CMD | 命令的名稱和參數 |
上面的示例中列出了兩條主要的信息,代表當前服務器運行着兩個dotnet core的程序。
根據CMD進一步細分,同時也能夠看出是那兩個程序
以第一個爲例:
[AppHost:crm] /data/project/crm/crm.dll --environment Staging
其中,AppHost後面跟着的就是jws的配置文件名稱。
後面那部分就是運行 dotnet
時指定的dll和相關的參數。
瞭解Jexus的都應該知道Jexus運行dotnet core程序時是父子進程的關係,示例中的兩個進程的PPID都是 51914,也很清晰的說明了這個問題。
用下面命令查看這個進程的信息時,能夠看到它的CMD就是JwsMain,jws的核心進程
ps -p 51914
輸出
PID TTY TIME CMD 51914 ? 00:01:40 JwsMain