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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在Linux上設(shè)置守護程序?(linux設(shè)置守護程序)

Linux是一個流行的開源操作系統(tǒng),被廣泛應用于服務器環(huán)境中。作為服務器的操作系統(tǒng),Linux需要穩(wěn)定可靠地運行,而守護程序則是保證系統(tǒng)穩(wěn)定的關(guān)鍵組成部分之一。守護程序可以在后臺運行,定期執(zhí)行一些任務或者等待某些事件發(fā)生,并對系統(tǒng)資源進行監(jiān)控,以便在出現(xiàn)故障時能夠快速相應。本文將講解如何在Linux上設(shè)置守護程序。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、平遙網(wǎng)站維護、網(wǎng)站推廣。

一、什么是守護程序?

守護程序(daemon)是一種運行在后臺的程序。在Linux系統(tǒng)中,守護程序通常運行在系統(tǒng)初始化時啟動,并一直保持運行狀態(tài),直到系統(tǒng)關(guān)閉或者守護程序被手動關(guān)閉或者重新啟動。

守護程序通常用于執(zhí)行某些任務或者等待某些事件的發(fā)生。例如,一個郵件服務器的守護程序可以等待郵件的到達并將其存儲在服務器上,一個Web服務器的守護程序可以等待客戶端的請求并提供相應的服務。

二、如何創(chuàng)建守護程序?

在Linux系統(tǒng)中,我們可以使用系統(tǒng)提供的命令或者編寫一些腳本來創(chuàng)建守護程序。一個基本的守護程序如下所示:

“`

#include

#include

#include

#include

#include

#include

#include

void daemonize(char *cmd)

{

int i, fd0, fd1, fd2;

pid_t pid;

struct sigaction sa;

// 1. Umask

umask(0);

// 2. Fork

if ((pid = fork())

exit(1);

} else if (pid != 0) { exit(0);

}

// 3. Setsid

setsid();

// 4. Signal handling

sa.sa_handler = SIG_IGN;

sigemptyset(&sa.sa_mask);

sa.sa_flags = 0;

if (sigaction(SIGHUP, &sa, NULL)

exit(1);

}

if ((pid = fork())

exit(1);

} else if (pid != 0) { exit(0);

}

// 5. Change directory

if (chdir(“/”)

exit(1);

}

// 6. Close file descriptors

close(0);

fd0 = open(“/dev/null”, O_RDWR);

fd1 = dup(0);

fd2 = dup(0);

// 7. Open syslog

openlog(cmd, LOG_CONS, LOG_DAEMON);

if (fd0 != 0 || fd1 != 1 || fd2 != 2) { syslog(LOG_ERR, “unexpected file descriptors %d %d %d”, fd0, fd1, fd2);

exit(1);

}

}

int mn(int argc, char **argv)

{

daemonize(argv[0]);

while (1) {

// Do something in background

sleep(10);

}

exit(0);

}

“`

這是一個簡單的C語言程序,實現(xiàn)了守護程序的基本功能。程序的主要邏輯如下:

1. 使用umask函數(shù)設(shè)置文件權(quán)限掩碼為0,以免受到繼承自父進程的文件權(quán)限掩碼的影響。

2. 調(diào)用fork函數(shù)創(chuàng)建一個新進程,并使該新進程成為父進程的子進程。如果fork失敗,則直接退出程序。如果是父進程,則直接退出程序。

3. 調(diào)用setsid函數(shù)創(chuàng)建一個新的會話,并使該新會話成為進程組組長會話。因為會話是一個進程組的,所以在調(diào)用setsid函數(shù)之前,必須先創(chuàng)建一個新進程,以免影響之前的進程組。

4. 忽略SIGHUP信號。這樣,即使父進程退出,子進程也不會因為收到SIGHUP信號而退出。

5. 調(diào)用chdir函數(shù)將當前工作目錄更改為根目錄,以使當前工作目錄不受其他進程或設(shè)備的影響。

6. 調(diào)用close函數(shù)依次關(guān)閉標準輸入、標準輸出、標準錯誤,并使用open函數(shù)將它們分別映射到/dev/null文件描述符上,以防止向終端輸出。

7. 調(diào)用openlog函數(shù)打開系統(tǒng)日志,以便在系統(tǒng)日志中記錄日志消息。

在程序的mn函數(shù)中,我們調(diào)用daemonize函數(shù)來創(chuàng)建守護進程,并在while循環(huán)中做一些后臺任務。

三、如何將守護程序設(shè)置為開機啟動?

一旦我們創(chuàng)建了一個守護進程,我們也希望系統(tǒng)在每次啟動時自動啟動它。在Linux系統(tǒng)中,我們可以通過將守護進程的啟動腳本復制到/etc/init.d目錄,然后使用update-rc.d命令將其添加到系統(tǒng)啟動腳本中。例如,假設(shè)我們已經(jīng)創(chuàng)建了一個名為mydaemon的守護進程,并將其啟動腳本保存在/etc/init.d目錄下,那么我們可以按照以下步驟將其設(shè)置為開機啟動:

1. 復制啟動腳本到/etc/init.d目錄:

“`

sudo cp mydaemon /etc/init.d

“`

2. 使用update-rc.d命令將其添加到系統(tǒng)啟動腳本中:

“`

sudo update-rc.d mydaemon defaults

“`

現(xiàn)在,守護進程已經(jīng)設(shè)置為開機啟動了。

四、如何管理守護程序?

當我們創(chuàng)建了一個守護進程后,我們可能需要監(jiān)控它的運行狀態(tài)、停止它的運行、重新啟動它等。在Linux系統(tǒng)中,我們可以使用以下命令來管理守護進程:

1. 使用ps命令查看守護程序運行狀態(tài):

“`

ps aux | grep mydaemon

“`

這條命令將列出所有正在運行的mydaemon守護進程的信息。

2. 使用kill命令停止守護程序:

“`

sudo kill [pid]

“`

這條命令將停止指定pid的守護進程。

3. 使用service命令重新啟動或停止守護程序:

“`

sudo service mydaemon restart

sudo service mydaemon stop

“`

這些命令將重新啟動或停止mydaemon守護進程。

五、

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應式網(wǎng)站制作,設(shè)計師量身打造品牌風格,熱線:028-86922220

如何在Linux下用c語言創(chuàng)建守護進程并監(jiān)控系統(tǒng)運行期間的所有進程

可以分三步來做:

做兩個簡單的鉛信守護進程,并能正常運行

監(jiān)控進程是否在運行

啟襪悶動進程

綜合起來就可以了,代碼如下:

被監(jiān)控進程thisisatest.c

#include

#include

#include

#include

#include

#include

#include槐好輪

#include

void init_daemon()

Linux下怎么查看某個守護進程或者所有的守護進程?

命令ps

  查看守候進程的命令可以使用ps完成。

  進程一般分為交互進程、批處理進程和守護進程(daemons)三類。值得一提的是守護進程總是活躍的,一般在后臺運行,守護進程一般由系統(tǒng)在開機時通過腳本自動激活啟動或由超級管理用戶root來啟動。比如在Fedora或Redhat中,我們可以定義httpd服務器的啟動腳本的運行級別,此文件位于/etc/init.d目錄下,文件名是httpd,/etc/init.d/httpd 就是httpd服務器的守護程序,當把它的運行級別設(shè)置為3和5時,當系統(tǒng)啟動時橡物,它會跟著啟動。

# chkconfig –level 35 httpd on

  由于守護進程是一直運行著的,所以它所處的狀態(tài)是等待請求處理任務。例如通常大網(wǎng)站的Apache服務器都在運行,等待著用戶來訪問,也就是等待著任務處理。羨數(shù)

  Linux服務器在啟動時需要啟動很多系統(tǒng)服務,它們向本地和網(wǎng)絡用戶提供了Linux的系統(tǒng)功能接口,直接面向應用程序和用戶。提供這些服務的程序是由運行在后臺的守護進程來執(zhí)行的。守護進程是生存期長的一種進程。它們獨立于控制終端并且周期性地執(zhí)行某種任務或等待處理某些發(fā)生的事件。它們常常在系統(tǒng)引導裝入時啟動,在系統(tǒng)關(guān)閉時終止。Linux系統(tǒng)有很多守護進程,大多數(shù)服務器都是用守護進程實現(xiàn)的。同時,守護進程完成許多系統(tǒng)任務,比如,作業(yè)規(guī)劃進程crond、打印進程lqd等。有些書籍和資料也把守護進程稱為”服務”。選擇運行哪些兄如首守護進程,要根據(jù)具體需求決定。查看系統(tǒng)可以提供的守護進程對應的服務,打開一個終端以root權(quán)限運行ntsysv命令。

ps 命令………..

最簡單的.

ps aux 就能查看所有進程

艸··這個墳挖的··········

關(guān)于linux 設(shè)置 守護程序的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務,全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。


網(wǎng)站欄目:如何在Linux上設(shè)置守護程序?(linux設(shè)置守護程序)
文章分享:http://www.5511xx.com/article/dhdipgh.html