日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux守护进程的创建(结合nginx框架)

發布時間:2023/12/10 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux守护进程的创建(结合nginx框架) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux守護進程的創建(結合nginx框架)

先介紹幾個相關函數:

int dup2(arg1,arg2):參數一指向的內容賦給參數二,shi的參數二也能訪問參數一所指向的內容,并返回新的描述符

int fork()創建子進程,返回值-1:創建失敗 返回值0:子進程 返回其他:父進程

setsid()調用成功后,返回新的會話的ID,調用setsid函數的進程成為新的會話的領頭進程,并與其父進程的會話組和進程組脫離

unmask():umask可用來設定[權限掩碼]。[權限掩碼]是由3個八進制的數字所組成,將現有的存取權限減掉權限掩碼后,即可產生建立文件時預設的權限,咱們現在不用管,設置成0就可以了

代碼:

#include <fcntl.h> #include <iostream> #include <signal.h> #include <stdlib.h> #include <sys/stat.h> #include <unistd.h> using std::cout; using std::endl; int ngx_doemon {int fd;switch (fork()){case -1:return -1;case 0:break;default:exit(0);}if (setsid() == -1){return -1;}umask(0);fd = open("dev/null", O_RDWR);if (fd == -1){return -1;}if (dup2(fd, STDIN_FILENO) == -1){return -1;}if (dup2(df, STDOUT_FILENO)){return -1;}if (fd > STDERR_FILENO){if (close(fd) == -1)return -1;}return 1; } int main(int argc, char const *argv[]) {if (ngx_doemon != 1){//創建守護進程失敗,可以做失敗后的處理return -1;}else{//創建守護進程成功,執行守護進程中要做的工作for (;;){sleep(1);}}return 0; }

總結

以上是生活随笔為你收集整理的Linux守护进程的创建(结合nginx框架)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。