它似乎systemd在Ubuntu Docker镜像中不活跃或不可用.
我从ubuntu:16.04和ubuntu:16.10图像运行Docker容器.
如果我systemctl status ssh在16,04容器中执行,结果就是错误Failed to connect to bus: No such file or directory.在16.10容器中的误差bash: systemctl: command not found.
如果我which systemctl在16.04容器中找到systemctl 但在16.10容器中找不到.
我发现/lib/systemd存在.
我尝试过安装systemd apt-get install systemd libpam-systemd systemd-ui.然后which systemctl找到systemctl 16.10但systemctl status ssh仍然给出错误Failed to connect to bus: No such file or directory
我的主要问题是:如何激活systemd和systemctl以在Ubuntu Docker镜像中使用?
为什么systemd在Ubuntu Docker容器中不活动?systemd不用于实例化容器吗?
我并没有发现有关此主题的Ubuntu/Ubuntu的泊坞图像,只有从Ubuntu转换信息的任何文件Upstart来 …
如何在Ubuntu 16.04 LTS上运行Mongodb作为服务?几天前我将服务器升级到Ubuntu 16.04.我注意到我重启时我的MongoDB服务没有启动.试着用
sudo initctl start mongod
没有做的伎俩.任何人都知道如何解决这个问题?
我一直在尝试在Ubuntu 16.04上使用Docker(1.10),但安装失败,因为Docker Service无法启动.我已经尝试通过docker.io,docker -engine apt软件包安装docker,curl -sSL https://get.docker.com/ | sh但它不起作用.
我的主机信息是:
Linux Xenial 4.5.3-040503-generic #201605041831 SMP Wed May 4 22:33:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
这是systemctl status docker.service:
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since sáb 2016-05-14 15:17:31 CEST; 12min ago
Docs: https://docs.docker.com
Process: 22479 ExecStart=/usr/bin/docker daemon -H fd:// (code=exited, status=1/FAILURE) …Run Code Online (Sandbox Code Playgroud) 我在 WSL2 上使用 Ubuntu(不是在 Docker 桌面上)。
\n根据如何修复 docker \xe2\x80\x98Cannot connect to the Docker daemon at unix:///var/run/docker.sock。Ubuntu 上的 docker 守护进程是否正在运行?\xe2\x80\x99,我可以在启动时自动启动 docker 守护进程
\nsudo systemctl enable docker\nRun Code Online (Sandbox Code Playgroud)\n而不是在每次启动时重新启动它
\nsudo systemctl start docker\nRun Code Online (Sandbox Code Playgroud)\n这两个命令都避免了“无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护进程。docker 守护进程正在运行吗?”。
\n当使用两者中的任何一个时,我得到
\n\n\n使用 \n/lib/systemd/systemd-sysv-install 将 docker.service 的状态与 SysV 服务脚本同步。执行:\n/lib/systemd/systemd-sysv-install 启用 docker
\n
测试运行显示,docker 尚未运行:
\n\n\nRun Code Online (Sandbox Code Playgroud)\ndocker run hello-world \ndocker:无法连接到 \nunix:///var/run/docker.sock 处的 Docker 守护程序。docker 守护进程是否正在运行?请参阅\n\'docker run --help\'。
\n
之前的一些步骤,此时我也收到了不同的消息:
\n\n …
嗨,我正试图在我的Mac上看到我的apache服务的状态.我试过这个命令
sudo service httpd status
Run Code Online (Sandbox Code Playgroud)
但命令未找到
我在谷歌中查找并发现,systemctl所以我尝试了
sudo man systemctl
Run Code Online (Sandbox Code Playgroud)
它没有显示手动输入 systemctl
我注意到我没有看到太多mac os,只在Google的网站上看到linux.
请问命令systemctl和service存在仅在Linux上,而不是Mac吗?
如果是这样,这些命令的mac版本是什么?
我尝试在Ubuntu 14.04中执行以下命令:
systemctl enable --now docker-cleanup-dangling-images.timer
Run Code Online (Sandbox Code Playgroud)
我也尝试用sudo,我试图用service和systemd替换systemctl,但没有任何作用
sudo: systemd: command not found
systemd: command not found
sudo: service: command not foud
Run Code Online (Sandbox Code Playgroud)
如何在Ubuntu 14.04中执行此命令,还是有另一种方法来执行相同的命令?
我正在尝试编写自己的(简单的)systemd服务,它可以做一些简单的事情.(就像使用shell脚本将数字1到10写入文件一样).我的服务文件如下所示.
[Unit]
Description=NandaGopal
Documentation=https://google.com
After=multi-user.target
[Service]
Type=forking
RemainAfterExit=yes
ExecStart=/usr/bin/hello.sh &
[Install]
RequiredBy = multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是我的shell脚本.
#!/usr/bin/env bash
source /etc/profile
a=0
while [ $a -lt 10 ]
do
echo $a >> /var/log//t.txt
a=`expr $a + 1`
done
Run Code Online (Sandbox Code Playgroud)
由于某种原因,服务没有出现,systemctl显示以下输出.
root@TARGET:~ >systemctl status -l hello
* hello.service - NandaGopal
Loaded: loaded (/usr/lib/systemd/system/hello.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://google.com
Run Code Online (Sandbox Code Playgroud)
一直想弄清楚过去2天出了什么问题.有人可以帮我吗?
问候,nandanator
这是我的问题。我在其上运行 CentOS 和 java 进程。Java 进程由启动/停止脚本操作。它也创建了一个 java 实例的 .pid 文件。
我的单位文件看起来像:
[Unit]
After=syslog.target network.target
Description=Someservice
[Service]
User=xxxuser
Type=forking
WorkingDirectory=/srv/apps/someservice
ExecStart=/srv/apps/someservice/server.sh start
ExecStop=/srv/apps/someservice/server.sh stop
PIDFile=/srv/apps/someservice/application.pid
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
当我调用stop函数时,脚本终止 java 进程SIGTERM并返回 0 代码:
kill $OPT_FORCEKILL `cat $PID_FILE`
<...>
return 0
Run Code Online (Sandbox Code Playgroud)
之后,如果我检查我的单位的状态,我会得到类似的东西(状态 = 143):
? someservice.service - Someservice
Loaded: loaded (/usr/lib/systemd/system/someservice.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2017-08-30 09:17:40 EEST; 4s ago
Process: 48365 ExecStop=/srv/apps/someservice/server.sh stop (code=exited, status=0/SUCCESS)
Main PID: 46115 (code=exited, status=143)
Aug …Run Code Online (Sandbox Code Playgroud) 我想查看 systemctl 命令的输出。例如:
systemctl restart systemd-networkd
Run Code Online (Sandbox Code Playgroud)
将显示输出
systemctl status systemd-networkd.
Run Code Online (Sandbox Code Playgroud)
我知道我可以编写一个总是按顺序放置命令的脚本,但我希望有类似的东西
systemctl --verbose restart ....
Run Code Online (Sandbox Code Playgroud)
那没有进入手册页。
我想在重启或关机之前上传文件.
1.从我的vps到vps
设置upload.service
vim /etc/systemd/system/upload.service
[Unit]
Description=upload files into my vps
Before=shutdown.target reboot.target
Requires=network-online.target
After=network.target
[Service]
ExecStart=/bin/true
ExecStop=/bin/bash /home/upload.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
upload.sh的脚本
vim /home/upload.sh
/usr/bin/scp -P 22 -i /home/.ssh/id_rsa /home/wp.bak root@remote_ip:/home
Run Code Online (Sandbox Code Playgroud)
是时候测试一下了.
systemctl enable upload
reboot
Run Code Online (Sandbox Code Playgroud)
验证wp.bak可以在重启时从我的vps1上传到vps2.
2.从家里的电脑到vps
ssh凭证已在家里的电脑和vps之间建立.
与case1相同的设置.
journalctl -u upload
Started upload files into my vps.
ssh: connect to host xxxxxxxxxx port 22: Network is unreachable
lost connection
Run Code Online (Sandbox Code Playgroud)
这是没有用的,写After=network.target的After=network.target ssh.service.
像nbari说的那样.
sudo vim /etc/systemd/system/upload.service
[Unit]
Description=upload files into my vps
Before=shutdown.target reboot.target
After=network.target …Run Code Online (Sandbox Code Playgroud)