试图在这里学习 docker,但我对 docker.io 和 docker 之间的区别有点困惑。是docker.io
守护程序服务器和docker
客户端?为什么守护进程需要一直运行?
我有一个由 init.d 脚本在后台执行的进程。例如:
case "$1" in
start)
/bin/myprocess &
stop)
killall myprocess
restart)
killall myprocess
/bin/myprocess &
esac
Run Code Online (Sandbox Code Playgroud)
在某些情况下,myprocess 可能会失败并返回。是否有任何(标准)方法来检测其故障并自动重新启动?
据我了解,systemd 是 Linux 的“主”守护进程,在启动并运行其 init 函数后立即管理所有其他进程。由于我遇到了这个(现已解决)问题,即无法在 WSL 上使用任何 systemd 命令,我意识到它根本没有 systemd 进程。
现在,出于好奇,我想知道 WSL 依赖于哪个进程管理而不是 systemd。由于我在“一般谷歌搜索”上没有找到令人满意的答案,我想,让我们在这里尝试一下。
实际上,我不太确定是否应该使用 Shell 脚本,或者是否已经有一些方法。但是无论我们使用什么方法,我都希望服务一直运行。
比方说,iptables
作为一个例子。然后 ..
iptables
服务stopped
或(换句话说)没有运行,我希望它是started
(或restarted
)..自动无论何时停止(或不运行)。(也许我可以给出一个公平的频率来检查,如果进行实时检查是问题。所以可以说,每 5 分钟一次)
我能想到的唯一方法是在 Cron Tab 中使用 Shell 脚本。
谢谢!
我最近从 Windows 迁移到 Linux (xubuntu)
我是一名开发人员,已经安装了我需要的一切,LAMP。在 Windows 中,我曾经关闭所有不必要的服务——我不需要 Apache 或 MySQL 服务一直运行。每当我需要 MySQL 时,我都会使用:
net start mysql
Run Code Online (Sandbox Code Playgroud)
我如何在 Linux 中做同样的事情?
我正在尝试为特定用户启动 systemd 服务(服务名称/目标不相关)。我这样做是因为我需要有一个在启动时运行的应用程序的每个用户进程。
这是我迄今为止取得的成就:
我在/etc/systemd/user/ 中创建了一个单元文件
然后做了以下事情:
~ $ systemctl --user 启用 custom.service
然后如https://wiki.archlinux.org/index.php/Systemd/User#Automatic_start-up_of_systemd_user_instances 中所述,即使没有用户会话运行,也可以使所述服务运行。
~ $ loginctl enable-linger $USER
但是,当我重新启动该服务时,该服务似乎没有启动,并且在 journalctl 中没有看到该服务的任何内容。但是状态说服务已启用:
~ $ systemctl --user 状态传输守护进程
? custom.service - 自定义守护进程
加载:加载(/etc/systemd/user/custom.service;启用;供应商预设:启用)活动:不活动(死)
我也可以通过运行手动运行它,没有问题
~ $ systemctl --user start custom.service
任何人都知道我做错了什么?
我正在尝试systemd
在 Debian 上设置守护进程宽度。
systemd
已经是发行版的一部分。刚刚在下面添加了一个新的单元文件 my-daemon.service/etc/systemd/system/
但在重新启动后,无论我做什么,我都会收到此错误。它在重新启动之前工作
~ # systemctl daemon-reload
Failed to get D-Bus connection: Unknown error -1
~ # systemctl list-units
Failed to get D-Bus connection: Unknown error -1
Run Code Online (Sandbox Code Playgroud)
也尝试删除单元文件 my-daemon.service 并重新启动系统..但仍然出现相同的错误
# dpkg -l | grep -i dbus
ii at-spi2-core 2.14.0-1 amd64 Assistive Technology Service Provider Interface (dbus core)
ii dbus 1.8.22-0+deb8u1 amd64 simple interprocess messaging system (daemon and utilities)
ii dbus-x11 1.8.20-0+deb8u1 amd64 simple interprocess messaging system (X11 deps)
ii libdbus-1-3:amd64 1.8.20-0+deb8u1 …
Run Code Online (Sandbox Code Playgroud) startx
在Arch Linux上运行时,错误:
E: [pulseaudio] main.c: Daemon startup failed.
Run Code Online (Sandbox Code Playgroud)
被退回。
有什么办法可以解决这个错误吗?
运行 ps 时,您会得到如下信息:
root 2 0.0 0.0 0 0 ? S< 00:00 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 00:00 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< 00:00 0:00 [events/0]
Run Code Online (Sandbox Code Playgroud)
所有守护进程通常都有“[..]”括号。
它们是什么意思(如果有的话)?你如何创建一个看起来像这样的过程?
我问的原因是我们从 rcS 创建了一个系统守护进程(程序使用 fork 创建守护进程),但是 ps 条目看起来像:
root 207 0.0 0.2 1516 200 ? S 00:00 0:00 /root/testdaemo
Run Code Online (Sandbox Code Playgroud)
所以我们想知道拥有 '[..]' 括号是否重要以及进程如何首先获得它们。
谢谢。
我在Ubuntu 14.04 服务器上运行Supervisord,一切正常。我使用 git push 进行部署,在部署时我还需要重新启动我的应用程序服务器 ( gunicorn ),我应该可以使用supervisorctl
.
un my supervisord.conf
, gunicorn 定义如下:
[program:gunicorn]
command=/home/imb/imb/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 -w 1 app:app
directory=/home/imb/imb
autostart=true
autorestart=true
stdout_logfile=/tmp/gunicorn.log
redirect_stderr=true
stopsignal=QUIT
Run Code Online (Sandbox Code Playgroud)
我supervisorctl
是这样启用的:
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
Run Code Online (Sandbox Code Playgroud)
我开始使用主管
sudo supervisord -c /home/imb/imb/supervisord.conf
Run Code Online (Sandbox Code Playgroud)
据我所知,我现在应该能够使用命令重新启动gunicorn supervisorctl restart gunicorn
,但是当我这样做时,我得到
$ supervisorctl restart gunicorn
unix:///var/run/supervisor.sock no such file
Run Code Online (Sandbox Code Playgroud)
我检查了该文件/var/run/supervisor.sock
确实不存在,即使我确定主管实际上正在运行:
$ ps -A | grep supervisor
27211 ? 00:00:00 supervisord
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么 …
daemon ×10
linux ×7
process ×3
systemd ×3
arch-linux ×2
services ×2
bash ×1
boot ×1
docker ×1
pulse-audio ×1
reboot ×1
supervisord ×1
ubuntu ×1
windows-subsystem-for-linux ×1
xorg ×1