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

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

新聞中心

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

在Linux中,進(jìn)程是任何操作系統(tǒng)的核心組成部分之一。進(jìn)程是指正在系統(tǒng)中運(yùn)行的程序?qū)嵗T贚inux中,每個(gè)進(jìn)程都有一個(gè)獨(dú)特的名稱,這個(gè)名稱是由操作系統(tǒng)自動(dòng)生成的,根據(jù)進(jìn)程所執(zhí)行的任務(wù)和對(duì)系統(tǒng)的貢獻(xiàn)來(lái)賦予不同的名字。

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

本文將深入探討Linux進(jìn)程名字的含義,并從多個(gè)角度解析不同進(jìn)程名字的含義。

1. init進(jìn)程

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

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

2. kthreadd進(jìn)程

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

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

3. systemd進(jìn)程

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

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

4. httpd進(jìn)程

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

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

5. sshd進(jìn)程

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

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

6. crond進(jìn)程

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

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

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

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

  • Linux下進(jìn)程查看 字符含義
  • 如何修改 Linux 中的進(jìn)程名

Linux下進(jìn)程查看 字符含義

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

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

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

PID: 當(dāng)前進(jìn)程號(hào)

PPID: 當(dāng)前進(jìn)程的父進(jìn)程號(hào)

C: CPU 占用百蠢畝分率

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

NI: Nice 值

ADDR: 交枝裂換(swap) 地址

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

WCHAN: 當(dāng)前進(jìn)程正在等待的事件(比如等待semphore,等待 IO 等)

STIME: 進(jìn)程啟動(dòng)時(shí)間 (什么時(shí)候開(kāi)始運(yùn)行的)

TIME: 進(jìn)程占用cpu時(shí)間

TTY: 進(jìn)程對(duì)應(yīng)控制終端 (可以沒(méi)有)

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

如何修改 Linux 中的進(jìn)程名

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

在linux中prctl可以滿足這個(gè)要求,下滿是man手冊(cè):

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修改的進(jìn)程名,只能是16個(gè)字節(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;

}

當(dāng)新名稱長(zhǎng)度大于16時(shí)就會(huì)截?cái)?,上面的新名字截?cái)嗪笫莂bcdefghijklmno。這對(duì)于我們來(lái)說(shuō)是有缺陷的。而且通過(guò)ps -aux 查看,進(jìn)程名稱并沒(méi)有改變,改變的只是/prco/$(PID)/stat和

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

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

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

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

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

我們可以通過(guò)以下來(lái)訪問(wèn)這個(gè)變量

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é)合,通過(guò)ps -a 、 ps -ef 、ps -aux、 top 等等命令都只能查詢到新進(jìn)程名,/proc/$PID/ 下的文件也顯示了新進(jìn)程名的信息。

應(yīng)用場(chǎng)景:

、標(biāo)識(shí)父子進(jìn)程名稱,防止被誤殺

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

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


名稱欄目:Linux進(jìn)程名字的含義詳解 (linux 進(jìn)程名字是什么意思)
轉(zhuǎn)載注明:http://www.5511xx.com/article/cccssjd.html