在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用。因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这四种命令是如何工作的。
1、屏蔽一些有关控制终端操作的信号 防止在守护进程没有正常运转起来时,控制终端受到干扰退出或挂起。 2、脱离控制终端,登录会话和进程组 登录会话可以包含多个进程组,这些进程组共享一个控制终端,这个控制终端通常是创建进程的登录终端。控制终端,登录会话和进程组通常是从父进程继承下来的。我们的目的就是要摆脱它们,使之不受它们的影响。 其方法是在fork()的基础上,调用setsid()使进程成为会话组长。调用成功后,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离,由于会话过程对控制终端的独占性,进程同时与控制终端脱离。 setsid()实现了以下效果: (a) 成为新对话期的首进程 (b) 成为一个新进程组的首进程 (c) 没有控制终端。 3、禁止进程重新打开控制终端 现在,进程已经成为无终端的会话组长,但它可以重新申请打开一个控制终端。可以通过使进程不再成为会话组长来禁止进程重新打开控制终端,再fork()一次。 4、关闭打开的文件描述符 进程从创建它的父进程那里继承了打开的文件描述符。如不关闭,将会浪费系统资源,造成进程所在地文件系统无法卸下以及无法预料的错误。一般来说, 必要的是关闭0、1、2三个文件描述符,即标准输入、标准输出、标准错误。因为我们一般希望守护进程自己有一套信息输出、输入的体系,而不是把所有的东西 都发送到终端屏幕上。 5、改变当前工作目录 将当前工作目录更改为根目录。从父进程继承过来的当前工作目录可能在一个装配的文件系统中。因为守护进程通常在系统重启之前是一直存在的,所以如果守护进程的当前工作目录在一个装配文件系统中,那么该文件系统就不能被拆卸。 另外,某些守护进程可能会把当前工作目录更改到某个指定位置,在此位置做它们的工作。例如,行式打印机假脱机守护进程常常将其工作目录更改到它们的spool目录上。 6、重设文件创建掩码 将文件方式创建屏蔽字设置为0:umask(0)。 由继承得来的文件方式创建的屏蔽字可能会拒绝设置某些许可权。例如,若守护进程要创建一个组可读、写的文件,而继承的文件方式创建屏蔽字,屏蔽了这两种许可权,则所要求的组可读、写就不能起作用。 7、处理SIGCHLD信号 处理SIGCHLD信号并不是必须的。但对于某些进程, 特别是服务器进程往往在请求到来时fork子进程出来处理请求。如果父进程不等待子进程结束,子进程将成为僵尸进程(zombie)而仍占用系统资源。如 果父进程等待子进程结束,将增加父进程的负担,影响服务器进程的并发性能。在系统V下可以简单地将SIGCHLD信号的操作设为SIG_IGN,即忽略掉。这样,内核在子进程结束时不会产生僵尸进程,这一点与BSD4不同,在BSD4下必须显示等待子进程结束才能释放僵尸进程。 8、记录信息 在Linux/Unix下有个syslogd的守护进程,向用户提供了syslog()系统调用。任何程序都可以通过syslog记录事件。 源码实现及分析:
我们知道linux有许多自带的守护进程,比如syslogd、crond、sendmail等。那用户或开发者自己编写的程序为什么也需要成为守护进程呢?
https://github.com/Ponderfly/GoogleTranslateIpCheck/releases/download/1.6/GoogleTranslateIpCheck-mac-x64.zip
重要:越狱骨灰级玩家请忽略本篇文章,篇幅较长,大约2500+字,突有不适感,请返回上一页,继续忙你的事情
信号是 Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟。
上一篇文章中,我们看到了如何通过 multiprocessing 来创建子进程。 通过 multiprocessing 实现 python 多进程
SA_RESETHAND,如果设置来该标志,则处理完当前信号后,将信号处理函数设置为SIG_DFL行为
Daemon(精灵)进程,是Linux中的后台服务进程,生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。类似于Windows下的服务程序。通常的 linux 程序在我们通过终端运行挂起后,再关闭终端,这些程序的运行进程也会随着终端一起关闭,这是因为他们属于同一会话。如果不想程序随着终端关闭而关闭,那么就要让程序脱离终端的会话组,那么就需要使用到setsid()函数了。一个正确的守护进程编写过程如下:
信号是一种进程间通信机制,信号都有一个对应的默认处理行为,信号触发时,信号处理函数和进程正常的执行流程同时存在,这会给编程带来隐患,如果信号处理函数中调用了不可重入函数的话。信号同其他进程间通信技术(管道、共享内存)相比,传递的信息还是有限的,由于信息较少所以也方便管理,一般在系统管理中使用,比如终止或者恢复进程等。 ·
TorghostNG是一款功能强大的网络流量匿名化工具,该工具基于Python3开发,并对TorGhost工具进行了重构。TorghostNG的匿名化功能通过Tor网络实现,可以帮助广大研究人员让自己所有的网络通信流量匿名化。
今天的主题是在 Linux 上实现一个群聊功能,支持群聊,指定人私聊,群主禁言,踢出群聊的功能,实际上要实现这个功能,如果你阅读过我前两天我写一篇 Linux原始系统api实现两个终端实时聊天 ,那么,在以上的基础上其实就是追加一下 两个功能即可,及群主禁言,和将谁踢出群聊的功能,因为群聊的基本功能我们实现了,而且私信的逻辑我们也实现了,ps,文本的代码在此。
文章更新: 20170304 初次成文 问题提出: 虽然适用于Linux系统的网易云音乐PC客户端已经在网易云音乐官网上架(仅适用于深度和Ubuntu系统),但因为我们的树莓派是Arm架构,所以专为PCLinux开发的客户端是不能在我们小小的树莓派上跑的。好在Github上有大神搞出了基于Python的网易云音乐命令行版本NetEase-MusicBox(以下简称MusicBox): 项目地址: https://github.com/darknessomi/musicbox 庆幸的
欢迎投稿或推荐你自己的项目,投稿邮箱: editor@hi-linux.com 。如果你想我们一起交流,也可以戳「这里」加入技术交流群。
nginx的源码是比muduo要复杂些哈,muduo跟我以前写过的服务端项目有很多共通之处,就相当于是剥离了业务代码的网络层框架,所以看起来也比较亲切。这个nginx就感觉稍微有点陌生哈。
可以自己百度Google hosts寻找最新的hosts文件,获取前往GitHub上由大佬们维护的项目获取:https://github.com/googlehosts/hosts
守护进程是一种纯粹的后台进程,与运行前环境完全隔离,包括未关闭的文件描述符、控制终端、会话、进程组、工作目录以及文件创建掩码等 很多守护进程是父进程 fork 产生,所以会继承所有的父进程地址空间中的环境,所以必须在守护进程诞生之初,断绝这些相关环境,当然,守护进程也可以在 linux 系统启动时从启动脚本 /etc/rc.d 中启动,也可以由 crontab 启动 事实上,守护进程与普通进程的编写并没有特别大的区别
今天晚上,设置了一下路由器的防火墙,本来想添加一些规则让实验室的网络变得更加有趣,最后炸了,差点路由器都登不进去。。
当前只装了ubuntu16.04单系统,亲测可用,之前ubuntu16.04+win10双系统下也是这种方法装的,只是需要切换视频线的接口,可参考这篇
Linux远程管理服务器多基于 SSH 协议。本节给大家介绍 2 种常见的基于 SSH 协议的远程管理工具,分别是 PuTTY 和 SecureCRT。
一款足够简单、足够好用、足够强的免费 WAF。基于业界领先的语义引擎检测技术,作为反向代理接入,保护你的网站不受黑客攻击。
守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。
一、起因 前些日子,张戈在日志备份服务器加入了日志压缩的计划任务(详见服务器日志备份超节省空间的思路),结果发现监控总是发来 tar 的报警,提示存在 tar 进程。仔细检查 history 后发现是
曾经以暴破入侵LINUX系统挖矿而广为人知的DDG僵尸网络近期再次活跃。近日,腾讯安全检测发现DDG僵尸网络在近一个月内更新了9个版本,并通过攻击Linux系统进行挖矿,对服务器性能造成极大影响。腾讯安全专家提醒企业进一步加强对服务器的安全管理,同时建议部署腾讯T-Sec高级威胁检测系统等专业安全产品进行防御,防患未然。
为什么除0就报错了呢? 当代码除0时,程序运行后就崩溃了,程序运行变为进程,进程运行代码时出现了非法代码,进程退出了
多种后台运行方法总结,nohup, disown, setsid, (...&), screen, tmux
对于经常要连接服务器进行交互的人来说,有很多种方式,最多的就是使用一些比较成熟的应用,如xshell,finalshell,xftp等.在上一篇文章中我们搭建了一个新的终端,这次来使用终端来进行服务器的交互,包括访问以及文件的上传和下载.
今天给大家推荐一款好哥们自己编写免费且好用并且还是免安装的内网穿透软件。我自己也在用的,亲测过,好用,操作简单。
XWindows太老了,历史比Windows和Linux的开发时间都长,以至于很多人每天实际在用,但已经不知道它的存在。 XWindows目前是Linux/类Unix系统上的标准显示配置,QT/GTK等架构也是基于XWindows的。所以通常也有很多人只关注占领桌面市场的Windows,对于败退在边缘的XWindows完全嗤之以鼻。 其实只从GUI层面上来对比Windows和XWindows是不公平的。XWindows设计之初就是一个显示服务器的概念,在显示器服务器和应用之间,有一套协议来沟通彼此,
查找程序的进程id,其中port为你的项目所监听的端口,比如9090。假设进程id为pid
笔者将《unix环境高级编程》主要内容总结为三篇:文件篇,进程篇,高级io和进程间通信三大板块。本文是unix环境高级编程系列文章第二篇:进程篇。该篇主要包括:
随着经济的发展,自动售货机已经出现在大街小巷;在机场、车站等交通系统自助购票、取票也已普及;医院、银行、政务大厅等机构也都遍布着不同的自助终端设备,大大方便了人们的生活水平,提高了办事效率。对于自助终端设备的安全问题,人们的关注点却比较少,受年华表哥邀请,特写此文对自助终端设备安全做简单的分析与大家交流。
「守护进程」是 Linux 的一种长期运行的后台服务进程,也有人称它为「精灵进程」。我们常见的 httpd、named、sshd 等服务都是以守护进程 Daemon 方式运行的,通常服务名称以字母d结尾,也就是 Daemon 第一个字母。与普通进程相比它大概有如下特点:
SIGABORT—— 进程异常终止 SIGALRM ——超时告警 SIGFPE —— 浮点运算异常 SIGHUP ——连接挂断 SIGILL——非法指令 SIGINT ——终端中断 (Ctrl+C将产生该信号) SIGKILL ——*终止进程 SIGPIPE ——向没有读进程的管道写数据 SIGQUIT——终端退出(Ctrl+\将产生该信号) SIGSEGV ——无效内存段访问 SIGTERM ——终止 SIGUSR1——*用户自定义信号1 SIGUSR2 ——*用户自定义信号2 -------------------------------------->以上信号如果不被捕获,则进程接受到后都会终止! SIGCHLD——子进程已停止或退出 SIGCONT ——*让暂停的进程继续执行 SIGSTOP ——*停止执行(即“暂停") SIGTSTP——断挂起 SIGTTIN —— 后台进程尝试读操作 SIGTTOU——后台进程尝试写
signal包的核心是使用signal.signal()函数来预设(register)信号处理函数,如下所示:
一、信号在内核中的表示 实际执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号,SIGKILL 和
上一节中 [[16-linux程序后台执行指西]],我们提到了,重定向操作,对于后台执行命令来说,很有用,这一节来详细说说。
Linux系统启动时会启动很多系统服务进程,这些系统服 务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运⾏结束或⽤户注销时终止,但系统服务进程不受用户登录注销的影响,它们⼀直在运行着。这种进程叫守护进程。
守护进程是在后台运行不受终端控制的进程(如输入、输出等),一般的网络服务都是以守护进程的方式运行。守护进程脱离终端的主要原因有两点:(1)用来启动守护进程的终端在启动守护进程之后,需要执行其他任务。(2)(如其他用户登录该终端后,以前的守护进程的错误信息不应出现)由终端上的一些键所产生的信号(如中断信号),不应对以前从该终端上启动的任何守护进程造成影响。要注意守护进程与后台运行程序(即加&启动的程序)的区别。
Ubuntu是一套基于Debian的Linux系统,它追求的是“Just Work”,最新的7.10版本发布于2007年10月,不同于其他Linux发行版本,Ubuntu的所有版本都是免费的,包括企业版。
这又是一个有趣的概念,daemon在英语中是"精灵"的意思,就像我们经常在迪斯尼动画里见到的那些,有些会飞,有些不会,经常围着动画片的主人公转来转去,啰里啰唆地提一些忠告,时不时倒霉地撞在柱子上,有时候还会想出一些小小的花招,把主人公从敌人手中救出来,正因如此,daemon有时也被译作"守护神"。所以,daemon进程在国内也有两种译法,有些人译作"精灵进程",有些人译作"守护进程",这两种称呼的出现频率都很高。
首先区分一下Linux信号跟进程间通信中的信号量,它们的关系就犹如老婆跟老婆饼一样,没有一毛钱的关系。
最近看了一些 Nginx 的配置的文章主要和性能有关,包括一些安全上的配置,并不对所有设备适用,总结下来觉得有用的可以自取,另外是加深自己对服务器的理解。其中有一些有关 DDOS 的配置。内容参考了两篇文章和自己的一些安全理解。文章地址如下:
守护进程(Daemon)也称为精灵进程,是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或等待处理某些事情的发生,主要表现为以下两个特点:
基础词汇解释: DnsA记录传输: 利用dns解析过程,在请求解析的域名中包含需外传的数据,如xxxxxx.hack.com。则最终hack.com的dns服务器会收到xxxxx这个数据回传。 dns的txt类型回包: 一般指为某个主机名或域名设置的说明,可被黑客利用回传数据。终端请求某恶意域名的dns解析,dns返回txt记录,包含黑客需要的回传内容,如模块更新数据、指令等 概述: 随着越来越多的公司安全意识提高,大量公司已封锁socket通信,仅允许员工通过http/https协议外网,同时采取了越来越
毋庸置疑,对于系统管理员,提高服务器的安全性是最重要的事情之一。因此,也就有了许多针对这个话题而生的文章、博客和论坛帖子。
领取专属 10元无门槛券
手把手带您无忧上云