UNIX(進程間通信):05---守護進程

 

守護進程是在后臺運行不受終端控制的進程(如輸入、輸出等),一般的網絡服務都是以守護進程的方式運行。守護進程脫離終端的主要原因有兩點:(1)用來啟動守護進程的終端在啟動守護進程之后,需要執行其他任務。(2)(如其他用戶登錄該終端后,以前的守護進程的錯誤信息不應出現)由終端上的一些鍵所產生的信號(如中斷信號),不應對以前從該終端上啟動的任何守護進程造成影響。要注意守護進程與后臺運行程序(即加&啟動的程序)的區別。

創建守護進程的過程:  

  1. fork子進程, 父進程退出, 所有工作在子進程中進行形式上脫離了控制終端; 必須

  2. 子進程創建新會話, setsid函數, 使子進程完全獨立出來, 脫離控制; 必須

  3. 改變當前目錄為根目錄, chdir()函數, 防止占用可卸載的文件系統, 也可以換成其它路徑, 為了增強程序的健壯性; 非必須

  4. 重設文件權限掩碼, umask()函數, 防止繼承的文件創建屏蔽字拒絕某些權限, 增加守護進程靈活性; 非必須

  5. 關閉文件描述符, 繼承的打開文件不會用到, 浪費系統資源, 無法卸載, close(0), close(1), close(2); 非必須

  6. 執行核心工作

  7. 守護進程退出處理程序模型;

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444268.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444268.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444268.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode570. 至少有5名直接下屬的經理(SQL)

Employee 表包含所有員工和他們的經理。每個員工都有一個 Id&#xff0c;并且還有一列是經理的 Id。 ------------------------------------- |Id |Name |Department |ManagerId | ------------------------------------- |101 |John |A |null …

UNIX(進程間通信):16深入理解Socket

socket又叫套接字或者插口,它也是進程間通信的一種方式,實際上就是網絡上的通信節點,應用程序只需要鏈接到socket就可以和網絡上任何一個通信端點連接、傳送數據。socket封裝了通信的細節,我們可以不必關心通信協議內容而專注于應用程序開發。根據數據傳送方式,socket分為…

蘋果支付:如何解決沙盒環境下獲取可恢復購買項為空

在傳統手游開發中免不了和蘋果支付打交道,而且蘋果也會有各種奇奇怪怪的問題和BUG 。 曾經有一次某一個游戲出現了調單問題,現象如下(我有點懶,不想畫泳道圖或者時序圖): 客戶端拉起支付付款成功,OC底層收到支付成功回調->發送支付成功的收據到服務器驗…

leetcode25. K 個一組翻轉鏈表

給你一個鏈表&#xff0c;每 k 個節點一組進行翻轉&#xff0c;請你返回翻轉后的鏈表。 k 是一個正整數&#xff0c;它的值小于或等于鏈表的長度。 如果節點總數不是 k 的整數倍&#xff0c;那么請將最后剩余的節點保持原有順序。 示例 : 給定這個鏈表&#xff1a;1->2-…

游戲服務器架構:如何設計開發戰斗系統的技能和buff系統

戰斗系統中buff和skill如何配合 在網絡游戲中的戰斗形式多種多樣,不同游戲的戰斗邏輯也有很大的差異。但是一般都會涉及技能系統和buff系統,兩種之間相互關聯,技能可以產生buff作用在目標上,影響目標。同時buff也會影響技能的釋放效果,兩者都可以算得上游戲戰斗系統最重要…

一文徹底搞懂靜態庫和動態庫,顯示鏈接和隱式鏈接

定義&#xff1a;運行時庫 靜態庫 動態庫運行時庫&#xff1a;Unix中一個典型的運行時庫例子就是libc&#xff0c;它包含標準的C函數&#xff0c;如&#xff0c;print()&#xff0c;exit()等等&#xff0c;用戶能創建他們自己的運行庫&#xff08;在Windows中是DLL&#xff09;…

mysql的cpu高定位

導致數據庫CPU很高的原因有很多種,一般和慢SQL也有關(因為每條SQL要么占CPU高,要么占IO高,大體是這樣)。 (1)、如果服務器有多個mysql實例,需要通過top命令看看是哪個mysql實例導致的cpu高(如果不是mysql導致的cpu高,需要優化其他導致cpu的程序): (2)、定位到占用…

kubelet內存異常分析

背景: kubelet被重啟后, 內存再次升高, 在游戲啟動后,沒有進入大量玩家的情況下,2天時間占用接近10G,并且持續在增長, CPU偶爾負載高。AWS給出的解釋是containerd v1.4.0版本問題, 以下為內部分析過程。 實際情況 # 整體情況 [ec2-user@server]$ free -h …

游戲服務器架構-設計模式之發布訂閱模式

發布訂閱模式場景 熟悉消息中間件的同學應該對發布/訂閱模式(Publish Subscribe Pattern)并不陌生。即使你不了解消息中間件,那么在平時生活中發布/訂閱模式也是非常常見的場景。 比如你打開你的微信訂閱號,你訂閱的作者發布的文章,會廣播給每個訂閱者。在這個場景里,微信公…

leetcode129. 求根到葉子節點數字之和

給定一個二叉樹&#xff0c;它的每個結點都存放一個 0-9 的數字&#xff0c;每條從根到葉子節點的路徑都代表一個數字。 例如&#xff0c;從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點是指沒有子節點的節點。 …

游戲服務器架構-設計模式之觀察者模式和發布訂閱模式真的一樣嗎?

前面我給大家分享了觀察者模式和發布訂閱模式,有人私信給我說這倆不是一樣嘛,大體沒什么區別,我猜測大多數認為這兩者是一樣的可以繼續閱讀這兩篇文章,如果還不能解答你的問題,我相信這篇文章對比兩者的關系會讓你有更深刻的認識。 游戲服務器架構-設計模式之觀察者模式 游…

Struts2中s:iterator/s:iterator標簽的使用:

問題是這樣的&#xff1a; <s:iterator value"zhangjieList"> <s:property value"bb"/> </s:iterator> 我在頁面迭代了list里邊的值&#xff0c;我想限定只顯示100個字怎么做&#xff1f; 解決方案&#xff1a; <s:property valu…

聊一下CPU占用高的解決方案

前言: 在軟件開發和性能測試中,CPU占用率是服務器開發一個很重要的指標,到底有哪些因素會導致CPU占 用率上升呢?又有哪些手段可以降低CPU的占用率呢? 如果你看了這篇文章后仍然沒有解決項目問題的思路,請在下方留言或公眾號后臺留言。(后續我將更新一到兩篇…

一文搞懂 什么是CPU上下文?為什么要切換?如何減少切換?

自從上篇文章聊一下CPU占用高的解決方案更新后,最近收到了一些熱心觀眾的后臺留言,問到的一些問題比較集中的是關于CPU切換. 實際用C/C++,go開發,你會特別注意內存和CPU的使用情況,那些對于CPU使用情況特別關注,或者性能特別關注的朋友可以看看這篇文章,相信看完結尾的示…

leetcode257. 二叉樹的所有路徑

給定一個二叉樹&#xff0c;返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 輸入: 1 / \ 2 3 \ 5 輸出: ["1->2->5", "1->3"] 解釋: 所有根節點到葉子節點的路徑為: 1->2->5, 1->3 思…

內存優化-如何使用tcmalloc來提升內存性能?提升的結果太不可思議

無論是在游戲開發,或者其他長期運行的服務開發中,對內存的使用一直是架構師或者主程序在最初就要關注的point,如果內存使用不當,頻繁申請釋放內存造成系統負擔過大,性能降低,到最后產生大量內存碎片,無法申請可利用內存,最終宕機,給廣大程序員同學造成長期加班的痛苦。…

內存優化-使用tcmalloc分析解決內存泄漏和內存暴漲問題

其實我一直很想寫關于tcmalloc的內存泄漏檢測的文章,只是一直記不起來該如何下筆,有時項目太忙,在整理這方便的思考過少,另外遇到的問題也不是很多,直到最近用tcmalloc幫A項目排查一些很棘手的內存泄漏問題,有了一定的創作靈感,這才執筆創作,希望能分享給大家。 如果對…

leetcode130. 被圍繞的區域

給定一個二維的矩陣&#xff0c;包含 X 和 O&#xff08;字母 O&#xff09;。 找到所有被 X 圍繞的區域&#xff0c;并將這些區域里所有的 O 用 X 填充。 示例: X X X X X O O X X X O X X O X X 運行你的函數后&#xff0c;矩陣變為&#xff1a; X X X X X X X X X X X X…

閑話目前游戲服務器的開發

我是從12年開始進入頁游行業&#xff0c;接觸到的第一個游戲項目就是淘米網的《摩爾莊園》&#xff0c;公司那個時候也剛在美紐交所上市&#xff0c;被Benson&#xff0c;魏震和Rock騰訊三巨頭的感染下&#xff0c;做著喜歡的游戲... &#xff08;后來在工作中我經常會遇到過不…

為什么我們仍然堅持用C++做游戲服務器

本篇文章純屬文字,不需要配圖。 首先以我個人觀點來說,C ++對于我的吸引力不僅僅是它的技術優點。c++是個龐大而奇怪的語言,很多新領域會選擇這個語言是因為有性能上的需求,但是又拿不準瓶頸會出在哪里,C++是一個什么地方調優都很方便的語言,內存,CPU,線程優先…