日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux進程名字的含義詳解 (linux 進程名字是什么意思)

在Linux中,進程是任何操作系統(tǒng)的核心組成部分之一。進程是指正在系統(tǒng)中運行的程序?qū)嵗?。在Linux中,每個進程都有一個獨特的名稱,這個名稱是由操作系統(tǒng)自動生成的,根據(jù)進程所執(zhí)行的任務(wù)和對系統(tǒng)的貢獻來賦予不同的名字。

十多年的績溪網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整績溪建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“績溪網(wǎng)站設(shè)計”,“績溪網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

本文將深入探討Linux進程名字的含義,并從多個角度解析不同進程名字的含義。

1. init進程

在Linux系統(tǒng)中,之一個進程是init(初始化)進程。init進程的作用是為系統(tǒng)內(nèi)的所有其他進程創(chuàng)建一個啟動環(huán)境。因此,init進程是Linux系統(tǒng)中最重要的進程之一。

init進程所占用的進程ID(PID)為1,它的進程名字為“init”。它是由內(nèi)核自動啟動的,是所有其他進程的祖先進程。init進程在啟動時會自動啟動一些其它的進程,并創(chuàng)建它們所需要的環(huán)境。通常情況下,init進程會在系統(tǒng)啟動過程中啟動一些守護進程,如sshd、cron等等。

2. kthreadd進程

實際上,Linux中的所有進程都有一個共同祖先,那就是kthreadd(內(nèi)核線程)。kthreadd進程的作用是為其他線程創(chuàng)建和管理內(nèi)核線程。它是內(nèi)核線程在Linux系統(tǒng)中的管理者。

kthreadd進程所占用的PID為2,它的進程名字為“kthreadd”。它在系統(tǒng)啟動時自動初始化,其任務(wù)是在系統(tǒng)啟動時創(chuàng)建其他內(nèi)核線程并管理它們的生命周期。

3. systemd進程

systemd進程是Linux下最新的管理進程。systemd是未來趨勢,它支持多種服務(wù),如網(wǎng)絡(luò)、文件系統(tǒng)、日志等。它的設(shè)計目標是提供統(tǒng)一的啟動、管理和監(jiān)視機制,以便簡化系統(tǒng)管理和協(xié)調(diào)。

systemd進程所占用的PID為1,它的進程名字為“systemd”。在現(xiàn)代的Linux系統(tǒng)中,systemd進程已經(jīng)取代了init作為進程的初始父進程。

4. httpd進程

httpd進程是Apache Web服務(wù)器的核心進程,其作用是監(jiān)聽客戶端請求并將請求映射到正確的Web應(yīng)用程序。

httpd進程所占用的PID為一定的隨機數(shù),其進程名字通常是“httpd”或“apache2”。httpd進程通常在Web服務(wù)器的配置文件中指定。

5. sshd進程

sshd(Secure Shell daemon)進程是一個守護進程(Daemon),它允許用戶通過SSH協(xié)議登錄到遠程主機。它的改進版OpenSSH已經(jīng)成為Unix和Linux系統(tǒng)上更流行的安全遠程連接工具。

sshd進程所占用的PID為一定的隨機數(shù),其進程名字通常是“sshd”。該進程通常在運行時通過/etc/ssh/sshd_config文件進行配置。

6. crond進程

crond(定時調(diào)度程序)是一個守護進程,用于在特定時間執(zhí)行預(yù)定的任務(wù)。在Linux中,它是用戶管理過程的重要部分。

crond進程所占用的PID為一定的隨機數(shù),其進程名字通常是“crond”。該進程通常通過/etc/crontab文件進行配置。

本文詳細解析了Linux進程的一些重要名字及其含義。必須承認,在Linux系統(tǒng)的世界里,進程是不可或缺的元素,是系統(tǒng)運行的基石。通過此篇文章,不僅深入理解Linux進程名字的含義,也更深入地理解了Linux系統(tǒng)的基本工作原理。

相關(guān)問題拓展閱讀:

  • Linux下進程查看 字符含義
  • 如何修改 Linux 中的進程名

Linux下進程查看 字符含義

下面的解釋中如果有什么術(shù)語不明白了話,自己根據(jù)對應(yīng)英文關(guān)鍵字去搜索詳細說明,這些術(shù)語都是 linux/unix 操作系統(tǒng)中廣泛使用的

F: 標志位 (flags), 具體有哪些值及其含義可以參考 man ps 里面關(guān)于帶搭森 flags 的相關(guān)內(nèi)容

S: 狀態(tài) (state), 下面那幾個進程的狀態(tài)為S表示是在 sleeping 狀態(tài)(即等待狀態(tài))

PID: 當前進程號

PPID: 當前進程的父進程號

C: CPU 占用百蠢畝分率

PRI: 進程調(diào)度優(yōu)先級

NI: Nice 值

ADDR: 交枝裂換(swap) 地址

SZ: 虛擬內(nèi)存大小 (virtual size)

WCHAN: 當前進程正在等待的事件(比如等待semphore,等待 IO 等)

STIME: 進程啟動時間 (什么時候開始運行的)

TIME: 進程占用cpu時間

TTY: 進程對應(yīng)控制終端 (可以沒有)

CMD: 進程對應(yīng)的命令行參數(shù)

如何修改 Linux 中的進程名

在編寫網(wǎng)絡(luò)服務(wù)器程序時,為了響應(yīng)客戶端的請求,我們經(jīng)常需要新建進程來處理業(yè)務(wù)流程;而且又是為了關(guān)閉某個非法請求或者關(guān)閉長連接的客戶端,這時就需要殺死進程 killall proc_name。升孫 但是在新建進程時,子進程名與父進程名相同。因此需要由進程名及參數(shù)來區(qū)分客戶端連接。

在linux中prctl可以滿足這個要求,下滿是man手冊:

PR_SET_NAME (since Linux 2.6.9)

Set the process name for the calling process, using the value in

the location pointed to by (char *) arg2. The name can be up to

16 bytes long, and should be null terminated if it contains

fewer bytes.

但是prctl修改的進程名,只能是16個字節(jié)(包括皮鏈’\0′)。下面是修改的代碼(changetitle.c):

#include

#include

int main(int argc, char *argv, char *envp)

{

char *new_name = “abcdefghijklmnopqrstuvwxyz”;

getchar();

prctl(PR_SET_NAME, new_name);

getchar();

return 0;

}

當新名稱長度大于16時就會截斷,上面的新名字截斷后是abcdefghijklmno。這對于我們來說是有缺陷的。而且通過ps -aux 查看,進程名稱并沒有改變,改變的只是/prco/$(PID)/stat和

/prco/$(PID)/status的值,而/prco/$(PID)/cmdline并沒有改變。這種方式使用起來也是不方便的。

下面介紹另一種方式,可以與上面的方式互補。

首先看一下main函數(shù)的原型:int main(int argc, char *argv);

argv存放的是終端執(zhí)行的程序名稱也就是進程名。argv存放的是命令行參數(shù)。

linux中main()還有一個隱藏參數(shù)就是環(huán)境變量信息,存放了運行時所需要的環(huán)境變量。

我們可以通過以下來訪問這個變量

extern char **environ;

argv與environ是連續(xù)存放在棧區(qū)的。下面吵握鏈代碼可以查看參數(shù)信息:

#include

#include

extern char **environ;

int main(int argc , char *argv)

{

int i;

printf(“argc:%d\n” , argc);

for (i = 0; i

#include

#include

#include

#include

#include

# define MAXLINE 2023

extern char **environ;

static char **g_main_Argv = NULL; /* pointer to argument vector */

static char *g_main_LastArgv = NULL; /* end of argv */

void setproctitle_init(int argc, char **argv, char **envp)

{

int i;

for (i = 0; envp != NULL; i++) // calc envp num

continue;

environ = (char **) malloc(sizeof (char *) * (i + 1)); // malloc envp pointer

for (i = 0; envp != NULL; i++)

{

environ = malloc(sizeof(char) * strlen(envp));

strcpy(environ, envp);

}

environ = NULL;

g_main_Argv = argv;

if (i > 0)

g_main_LastArgv = envp + strlen(envp);

else

g_main_LastArgv = argv + strlen(argv);

}

void setproctitle(const char *fmt, …)

{

char *p;

int i;

char buf;

extern char **g_main_Argv;

extern char *g_main_LastArgv;

va_list ap;

p = buf;

va_start(ap, fmt);

vsprintf(p, fmt, ap);

va_end(ap);

i = strlen(buf);

if (i > g_main_LastArgv – g_main_Argv – 2)

{

i = g_main_LastArgv – g_main_Argv – 2;

buf = ‘\0’;

}

(void) strcpy(g_main_Argv, buf);

p = &g_main_Argv;

while (p

*p++ = ‘\0’;

g_main_Argv = NULL;

prctl(PR_SET_NAME,buf);

}

int main(int argc, char *argv)

{

char argv_buf = {0}; // save argv paramters

for(int i = 1; i

{

strcat(argv_buf, argv);

strcat(argv_buf, ” “);

}

setproctitle_init(argc, argv, environ);

setproctitle(“%s@%s %s”, “new_name”, “ip”, argv_buf);

for (int i = 0; environ != NULL; i++)

free(environ);

getchar();

return 0;

}

上面的代碼使用了prctl和修改argv兩種修改方法的結(jié)合,通過ps -a 、 ps -ef 、ps -aux、 top 等等命令都只能查詢到新進程名,/proc/$PID/ 下的文件也顯示了新進程名的信息。

應(yīng)用場景:

、標識父子進程名稱,防止被誤殺

關(guān)于linux 進程名字是什么意思的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽、重慶、貴陽機房服務(wù)器托管租用。


網(wǎng)站名稱:Linux進程名字的含義詳解 (linux 進程名字是什么意思)
本文來源:http://m.5511xx.com/article/cccssjd.html