我有一项服务突然停止。我试图重新启动该服务但失败并要求运行“systemctl daemon-reload”。
它究竟是做什么的?什么是“守护进程重新加载”?
在基于 Unix 的系统上部署服务时,从系统管理员的角度来看有哪些实际差异?
来自我的问题守护进程的进程 id 和会话 id 可以不同吗?,很明显我不能轻易决定守护进程的特性。我在不同的文章和不同的论坛中读到过,该service --status-all命令可用于列出我系统中的所有守护程序。但是我不认为该命令会列出所有守护程序,因为该命令未列出NetworkManager当前在我的Ubuntu 14.04系统中运行的守护程序。是否有一些命令可以列出正在运行的守护程序,或者有什么方法可以从filesystem自身中找到守护程序?
我正在使用 Debian 6 和 Dropbox。我按照这些命令安装它。
当我跑步时~/.dropbox-dist/dropboxd——Dropbox 工作正常。问题是,当我关闭终端,或者更糟糕的是 - 重新启动时,Dropbox 停止工作,我需要再次运行该守护程序。
如何让计算机在后台自动启动该守护进程?
例如:sshd 配置为仅侦听 wlan0。所以。除了检查 sshd_config 之外,我如何检查守护进程是否正在侦听什么接口?netstat 可以吗?如何?(操作系统:openwrt 或 science linux 或 openbsd)
更新:
我认为 sshd 可能仅限于一个接口......但没有......(192.168.1.5 在 wlan0 上......)
# grep ^ListenAddress /etc/ssh/sshd_config
ListenAddress 192.168.1.5:22
#
# lsof -i -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 23952 root 3u IPv4 1718551 0t0 TCP 192.168.1.5:22 (LISTEN)
#
# ss -lp | grep -i ssh
0 128 192.168.1.5:ssh *:* users:(("sshd",23952,3))
#
# netstat -lp | grep -i ssh
tcp 0 0 a.lan:ssh *:* LISTEN 23952/sshd
#
Run Code Online (Sandbox Code Playgroud) 如何在systemctl --failed不重新启动机器的情况下从列表中删除单元?
背景:除其他外,我在列表中有以下条目:
? openvpn-server@intranert.service loaded failed failed OpenVPN service for intranert
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为我intranet前段时间在单元模板的激活中拼错了,这是实际的生产实例。然而,当我检查服务器的失败单元时,我现在第一眼总是感到困惑,因为看起来生产服务实际上失败了,直到我认识到拼写错误并记住我过去的错字。
我正在编写一个shell 脚本,我想在启动时作为守护程序运行,而不使用daemontools或daemonize等外部工具。
根据Linux Daemon Writing HOWTO,一个合适的守护进程具有以下特征:
stdin, stdout, stderr)/)该守护进程介绍更进一步,指出一个典型的守护程序也:
SIGCLD 我将如何做到这一切的sh,dash或bash只用普通的Linux工具脚本?
该脚本应该能够在尽可能多的发行版上运行而无需额外的软件,尽管Debian是我们的主要关注点。
注意:我知道StackExchange网络上有很多建议使用nohup …
我通常使用service start/stop或initctl start/stop来启动或停止守护进程,但现在我正在寻找的是禁用守护进程在启动示例中启动mysqld。
目前我正在做的是重命名/etc/init/mysql.conf,/etc/init/mysql.conf.bak但在阅读了一些关于systemd我开始知道它为enable & disable上述任务提供选项后。
那么,ubuntu 12.04 中是否有类似的东西upstart?
为了创建一个服务(守护进程),我们 fork 父进程并使其退出,同时通过调用setsid(). 此外,我们为什么要使用 setsid()?我们的孤儿进程由init(尽管不是所有情况下)进程负责。
为什么要使用stsid()?setsid()和处理SIGHUP信号之间是否有任何关系。
我想知道如何让 shell 脚本监听某个端口(也许使用 netcat?)。希望当消息发送到该端口时,脚本会记录该消息,然后运行一个函数。
例子:
计算机 1 在后台运行脚本,脚本打开端口 1234 以接收流量
计算机 2 向计算机 1 的端口 1234 发送消息“hello world”
计算机 1 上的脚本将消息“hello world”记录到变量 $MESSAGE
脚本运行函数,因为变量 $MESSAGE 已设置
我该怎么做?