Questions tagged «daemon»

作为后台进程运行的计算机程序,而不是受交互式用户的直接控制。


3
如何为守护程序永久设置OOM杀手调整?
运行一些带有单个或仅有几个重要系统服务守护程序的Linux服务器,我想为那些守护进程调整OOM杀手,以防万一。例如,今天运行MySQL一些Ubuntu的服务器有一个被杀的MySQL守护程序,因为吨的apt-checker过程中消耗所有的内存和内核认为这是一个好主意,杀的MySQL。 我知道我可以使用该/proc/$(pidof mysqld)/oom_score_adj文件来调整分数,从而为内核提供一些线索,我不希望MySQL被杀死,但这无法在服务重启后幸存下来。我是否应该从软件包中编辑init / upstart脚本以包括这些调整?我认为这不是一个非常优雅的解决方案,因为我会调整属于软件包的文件。是否有可能挂入一般的upstart / init脚本并有条件地进行调整?还是建议您运行一个不确定的脚本while true{ adjust_oom(); sleep 60;}?

3
如何设置脚本在端口收到消息时执行
我想知道如何获取shell脚本以侦听某个端口(也许使用netcat?)。希望当消息发送到该端口时,脚本会记录该消息,然后运行一个函数。 例: 计算机1的脚本在后台运行,该脚本打开了端口1234以访问传入流量 计算机2将消息“ hello world”发送到计算机1的端口1234 计算机1上的脚本将消息“ hello world”记录到变量$ MESSAGE中 现在已设置变量$ MESSAGE,脚本运行功能 我该怎么做呢?

1
为什么“ su -c <command>&”似乎允许命令在后台运行而不挂机
我正在帮助一位同事,他的后台进程间歇性地死了。 我发现他们通过登录服务器并执行以下操作来启动后台进程: su - &lt;user&gt; -c '&lt;command&gt;' &amp; 我大叫“啊哈”。“如果使用“&”启动命令,则退出控制终端时它将挂断。您需要使用诸如nohup之类的方法来实现此目的。确实,此过程需要支持作为守护程序运行,tut tut。 我们测试了上面的命令以证明我的观点,并且...似乎起作用了:当我们退出运行上述命令的终端时,由命令启动的过程并未退出。 command是一个自定义Python脚本,其输出将发送到文件。据我所知,脚本中没有智能化的“守护进程”功能。它不执行在Wikipedia:守护程序(计算):创建页面中列出的作为守护程序运行所需的任何操作。 像这样运行命令的行为符合预期: &lt;command&gt; &amp; exit 在上述情况下,当我们退出终端时,由命令启动的后台进程将退出。 我的问题是这样的: 当我们添加“ su--c&”阻止终端退出时进程退出时,会发生什么情况。我想详细了解控制端子,标准输入和输出等。 这是实现将此命令作为后台进程运行的目标的合理方法。如果不是,为什么呢? 我想在公司内部传播最佳做法,但是我需要能够证明和支持我提出的任何建议。 我也想了解到底发生了什么。

3
是否有类似每个用户的守护程序?
我需要运行某些后台进程,这些后台进程只要与某个用户登录就可以正常运行。 是否存在类似每用户守护程序的东西?我只知道从计算机启动一直生存到关闭(或手动启动/杀死)的全局守护程序。 现在,我制作了一个脚本,用于检查该进程是否已经存在,如果不存在则创建该进程。然后使用nohupmy中的命令运行此脚本.profile。这样,该过程将在启动时启动,并且仅启动一次(即使有多个rxvt术语来回执行)。但是,它在登录后再也不会被杀死(这不是灾难,但是终止该过程也更干净)。

5
udev和hald有什么区别?
我才刚刚开始研究Linux的内部结构,我想知道udev和hal守护程序之间的区别是什么。从我的收集来看,似乎两者都负责管理可热插拔设备... udev暂停使用它们来监听,还是它们是两个独立的东西?
11 udev  daemon 

1
使用systemd配置Java守护程序
我在工作中使用此定义systemd: [Unit] Description=Some job [Service] ExecStart=/usr/local/sbin/somejob User=dlt Type=forking [Install] WantedBy=multi-user.target 调用脚本的方式如下(调用一个简单的例程,该例程在tcpip套接字上侦听并将输入追加到文件中): #!/bin/sh cd /home/user/tmp/testout nohup java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar &lt;/dev/null &gt;/dev/null &amp; After systemctl start somejob进程显示为正在运行,以init其父进程为例: user@CANTANDO ~$ ps -u dlt eo pid,ppid,command PID PPID COMMAND 8718 1 java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar 执行systemctl stop somejob完该过程后,不再显示(端口已关闭)。 所以一切似乎都很好 我的问题是:这是使用,运行Java守护程序的可接受解决方案systemd,还是存在警告,因此还有其他更稳定或安全的方法来实现这一目标?
11 systemd  java  daemon 

1
是内核线程进程和守护程序吗?
从Mauerer的Linux内核体系结构中, 内核线程是由内核本身直接启动的进程。他们将内核函数委派给一个单独的进程,并在其中与系统中的其他进程“并行”执行(实际上,与内核本身的执行并行)。内核线程通常称为(内核)守护程序。它们用于执行例如以下任务: 定期将修改的内存页面与页面所源自的块设备同步(例如,使用mmap映射的文件)。 如果很少使用内存页,则将其写入交换区域。 管理延迟的操作。 为文件系统实现事务日志。 基本上,内核线程有两种类型: 类型1-线程启动并等待直到内核请求执行特定操作为止。 类型2 —类型一旦启动,线程就会定期运行,检查特定资源的利用率,并在利用率超过或低于设置的限制值时采取措施。内核使用这种类型的线程进行连续监视任务。 由于Mauerer的书说内核线程是进程,所以我认为它们必须在用户模式而不是内核模式下运行。(或者我错了吗?一个进程可以在不同时间以用户模式或内核模式运行,还是只能以一种模式运行?) 但是Bovet的《了解Linux内核》指出,内核线程仅在内核模式下运行(请参见下面的引用)。两本书中的“内核线程”的概念是否相同? 传统的Unix系统将一些关键任务委托给间歇性运行的进程,包括刷新磁盘缓存,换出未使用的页面,为网络连接服务等。实际上,以严格的线性方式执行这些任务并不高效。如果将它们安排在后台,则它们的功能和最终用户流程都将获得更好的响应。由于某些系统进程仅在内核模式下运行,因此现代操作系统将其功能委托给内核线程,而内核线程不会受到不必要的用户模式上下文的阻碍。在Linux中,内核线程在以下方面与常规进程不同: 内核线程仅在内核模式下运行,而常规进程在内核模式和用户模式下交替运行。 由于内核线程仅在内核模式下运行,因此它们仅使用大于PAGE_OFFSET的线性地址。另一方面,常规过程在用户模式或内核模式下都使用全部四个千兆字节的线性地址。 Mauerer的书说内核线程是直接由内核启动的,似乎还说守护程序是内核线程的同义词。因此,我认为守护程序必须直接由内核启动。 但是https://unix.stackexchange.com/a/193918/674说,screen的守护进程是通过screen用户界面启动的(请参见下面的引用)。我认为screen用户界面是一个过程,而不是内核。是的概念daemon在Mauerer的书,并在链接的答复同一个概念? 首次启动时screen,实际上是在启动用户界面(ui),默认情况下会创建一个守护程序(会话管理器)。 通常,您如何理解“内核线程”,“进程”和“守护程序”的概念,它们之间的关系和差异?

1
无法重新启动网络守护程序
输入sudo service networking restart时,出现如下错误: edward@computer:~$ sudo service networking restart stop: Job failed while stopping start: Job is already running: networking 当我想networking在更改Mac地址后以及在/etc/network/interfaces文件中设置静态IP之后重新启动时,遇到此错误。 即使还原了这些更改并且计算机运行正常,我仍然遇到相同的错误。 翻阅时/var/log/syslog发现: kernel: [ 6448.036144] init: networking post-stop process (28701) terminated with status 100 与失败的停止/启动有关吗? 我在Ubuntu 14.04上

4
如何防止atd跑过去的工作?
at守护程序是一个很棒的工具!但是,如果计划在上午8:00进行作业,并且此时计算机已关闭,则在启动计算机时at将运行该作业。我想做的是,如果时间已到,请停止运行它。我已经搜索了手册页,并且在线查找,但是要么找不到答案,要么找不到答案。我正在使用Arch,但据我所知,在各个发行版中它非常相似。 任何帮助深表感谢!
9 time  scheduling  daemon  at 

2
在Shell中守护进程?
http://linuxg.net/how-to-transform-a-process-into-a-daemon-in-linux-unix/给出了在bash中守护进程的示例: $ nohup firefox&amp; &amp;&gt; /dev/null 如果我正确的话,该命令与“ nohup和后台进程”相同。但是,守护进程是否仅是经过预配置和后台运行的进程? 这里缺少什么步骤来守护进程? 例如,守护进程时是否不需要更改父进程?如果是,您将如何使用bash进行操作?我仍在尝试理解相关的回复https://unix.stackexchange.com/a/177361/674。 还有哪些其他步骤和条件? 看到我相关的问题https://stackoverflow.com/q/35705451/156458
9 linux  bash  daemon 

1
我停止了MiniSSDPD,会发生不好的事情吗?
我一直在尝试通过停止并禁用默认情况下监听的20个左右不必要的服务来加强我的Debian系统。其中之一称为“ minissdpd”。显然,这意味着为即插即用设备提供“发现”服务。对于我来说,似乎有些疯狂,旨在帮助本地外围设备的东西需要听听世界另一端的中国黑客的声音。发现服务甚至意味着什么? 我查看了一些漏洞数据库,确定有足够的minissdpd列出了很多漏洞。他们如何在默认分发中启用此功能?说真的,它就像安装Debian一样,被黑了。 无论如何,我的主要问题是:既然我已经禁用了该服务,是否会发生一些不好的事情(例如插入某些东西而无法使用)?

2
有没有简单的方法来创建FreeBSD rc脚本?
我在FreeBSD监狱里使用命令运行服务器: /usr/sbin/daemon /path/to/script.py 此刻,我必须在每次重新启动机器并启动监狱时都运行此命令。我希望此命令从开始/etc/rc。有没有一种简单的方法可以为daemon命令创建FreeBSD rc脚本? 更新:我通读了有关rc脚本的BSD文档,并从中创建了以下脚本/etc/rc.d/pytivo: #!/bin/sh . /etc/rc.subr name=pytivo rcvar=pytivo_enable procname="/usr/local/pytivo/pyTivo.py" command="/usr/sbin/daemon -u jnet $procname" load_rc_config $name run_rc_command "$1" 这可以在监狱开始时启动我想要作为守护程序的python脚本...(给定pytivo_enable="YES"在/etc/rc.conf),但是rc脚本不知道守护程序是否正在运行(它认为不是在何时运行),并且当我尝试启动它时会给出警告: [root@meryl /home/jnet]# /etc/rc.d/pytivo start [: /usr/sbin/daemon: unexpected operator Starting pytivo. [root@meryl /home/jnet]# 因此它很接近,并且可以工作,但是我觉得我应该能够获得比这更好的功能。

3
背景,僵尸,守护程序和不带ctty的这些概念是否连接在一起?
这些过程的概念是如何关联在一起- ,,background 和?zombiedaemonwithout controlling terminal 我觉得它们之间有某种距离,特别是通过的概念controlling terminal,但是我仍然没有太多信息可以讲述一个故事,例如是否需要给一个孩子讲一些有关Linux的文章而又不撒谎。 更新#1:例如(我不知道这是不是真的) background-- zombie前台进程无法成为zombie,因为zombie是没有父进程的后台进程 daemon- without ctty-所有daemons无运行ctty,但不是所有的过程,而不ctty是daemons background-- 可以检索到daemona background process以再次交互式运行,daemon is not zombie- without ctty- zombie如果有无所谓ctty连接到它或不 background- without ctty- processes发送到后台,而他们有ctty,如果成为守护进程或模具ctty是从他们采取

3
为什么systemd打印“循环太快”,该怎么办?
我正在使用Debian 8.3(jessie)运行服务器(VPS),systemd管理不同的进程。系统的负载低于1,但是它几乎使用了所有内存和部分交换空间。当我尝试停止服务并输入 systemctl stop process@1 日志文件说 Mar 1 08:03:50 abcde systemd[1]: Looping too fast. Throttling execution a little. 此消息每秒出现一次,什么也没有发生。当我发送^C到终端时,该过程终于停止了。当我尝试重新启动守护程序时,也会发生相同的情况。Systemd版本为:215-17 + deb8u3 为什么会出现此消息?如何在没有此消息的情况下关闭守护程序?
8 systemd  daemon 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.