问题标签 [systemctl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 debian 软件包安装期间 systemctl 状态卡住
我有一个发布以下内容的 python 服务。通过子进程调用命令:
这个包,作为它的安装的一部分,发出一个 systemctl status smb 命令,这个命令永远卡住了。给 RUNLEVEL=1 的原因是为了防止 nginx(包的依赖)一安装就在 80 端口启动。
关于什么可能是错误的任何想法?请询问更多信息。
编辑: systemctl 进程卡住等待寻呼机返回。寻呼机进程无限期地等待读取。
另外为了防止使用RUNLEVEL=1,我在安装自定义包之前屏蔽了nginx,所以不再提供RUNLEVEL=1。
mongodb - $ systemctl start mongodb 返回失败 (status=100)
我的问题很简单,但不容易找到解决方案。
在我的服务器上,我已经运行了几个月的 mongodb,但它突然停止了工作。我开始使用 mongodb,$ systemctl start mongodb
但它不再起作用了。
我运行时得到的响应$ systemctl status mongodb
是:
- 活跃:失败
- 进程:ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
- (代码=退出,状态=100)
会是什么呢?我有 .ns 和 .0/.1/.2 文件的备份。
ubuntu - systemctl 说 nginx 没有运行;但是 nginx _IS_ 正在运行
当我sudo systemctl status nginx
在 Ubuntu 上运行时,我被告知该服务已停止。
当我运行时ps ax | grep nginx
,我看到 nginx 有两个不同的 PID(一个主,一个工作),都在运行。事实上,我的网络服务器在浏览器中运行良好。
问题是我想更新我的 nginx 配置,然后用类似sudo systemctl reload nginx
. 但这是一个生产网络服务器,在我理解为什么 systemctl 认为 nginx 离线(并且正在跟踪一个完全不同的 PID)之前,我已经厌倦了这样做。
linux - 停止服务时单元进入故障状态 (status=143)
这是我的问题。我有 CentOS 和 java 进程在它上面运行。Java 进程由启动/停止脚本操作。它也创建了一个 java 实例的 .pid 文件。
我的单位文件看起来像:
当我调用stop
函数时,脚本终止 java 进程SIGTERM
并返回 0 代码:
之后,如果我检查我的单位的状态,我会得到类似的东西(状态=143):
当我的启动/停止脚本中没有该return
值时,它的行为完全相同。
添加到单元文件中,例如:
对我来说不是个好主意。为什么systemctl
表演如此,并没有向我展示正常的服务状态?
当我尝试修改我的启动/停止脚本而不是return 0
我把return 10
它的行为相同时,但我可以看到它exit 10
通过了。
这是一个例子:
从journalctl
日志中我可以看到systemctl
首先返回状态 = 143,然后返回值 10。所以我猜我的错误是在启动/停止脚本中的某个地方(因为在函数返回 0 之前传递了错误代码 143)?
linux - Systemd 服务在脚本中遗漏了命令
我正在尝试启动一个pigpiod.service
通过 systemd 命名的服务。它使用三个命令调用脚本。第二个被遗漏了。为什么是这样?
/etc/systemd/system/pigpiod.service:
/home/sysop/pigpiod.sh:
- 重新启动机器时,会在 中创建两个文件
/home/sysop/
,但pigpiod
没有启动。 - 当通过同样的方式手动启动服务
sudo systemctl start pigpiod
时。 sudo /home/sysop/pigpiod.sh
手动运行pigpiod
的时候其实就是启动了!
这是sudo systemctl status pigpiod -l
启动后的输出:
为什么 systemd 跳过了 的执行/usr/bin/pigpiod
,但以 root 身份手动运行脚本却没有?
我的系统:Raspberry Pi Model 3B,Raspbian GNU/Linux 8 (jessie)
linux - Linux 服务意外死亡
运行 Ubuntu 17.04,我想要一个systemctl
服务来监督一个主bash
脚本,其中三个程序(这里由带有参数标记的虚拟脚本代替foo_script
)在无限循环下运行(因为可能的程序崩溃)。
foo_main.sh
如果从命令行调用主脚本,则可以正常工作;但我试图从中设置的服务很快就会崩溃。
文件foo_script.sh
:
文件loop.sh
:
文件foo_main.sh
:
文件/etc/systemd/system/food.service
:
我从每个sudo systemctl status food.service
(在 a start
ofc 之后)获得的输出几乎相同
● food.service - Foo 守护进程
已加载:已加载(/etc/systemd/system/food.service;已禁用;供应商预设:已启用)
活跃:不活跃(死)
9 月 28 日 14:54:30 john-host systemd[1]:启动 Foo 守护进程。
9 月 28 日 14:54:30 john-host foo_main.sh[7376]: foo_main 脚本开始于 /home/john/bin
9 月 28 日 14:54:30 john-host foo_main.sh[7376]:<< foo_script.sh fb 循环开始 >>
9 月 28 日 14:54:30 john-host foo_main.sh[7376]: << looping foo_script.sh fb >> 1
9 月 28 日 14:54:31 john-host foo_main.sh[7376]: << looping foo_script.sh fb >> 2
9 月 28 日 14:54:32 john-host foo_main.sh[7376]: foo_main 脚本结束
9 月 28 日 15:24:30 john-host foo_main.sh[7921]: << foo_script.sh gb 循环的开始 >>
9 月 28 日 15:24:30 john-host foo_main.sh[7921]: << foo_script.sh gc 循环的开始 >>
9 月 28 日 15:24:30 john-host foo_main.sh[7921]: << looping foo_script.sh gb >> 1
9 月 28 日 15:24:30 john-host foo_main.sh[7921]: << looping foo_script.sh gc >> 1
systemd - 成功完成另一个单元后指示执行一个单元
朋友们。
我使用 cloud-config 来安装和配置 DCOS 集群。
通常“agentinstall.service”服务需要 5 分钟才能完成。
是否可以仅在“agentinstall.service”完成后指示 systemd 执行“agentconfigure.service” ?
谢谢你。
apache2 - 启动 apache2 时出现“systemctl status apache2.service”错误
root@kudo2:~# sudo systemctl restart apache2 apache2.service 的作业失败,因为控制进程退出并出现错误代码。有关详细信息,请参阅“systemctl status apache2.service”和“journalctl -xe”。
root@kudo2:~# systemctl status apache2.service ● apache2.service - Apache HTTP 服务器
已加载:已加载(/lib/systemd/system/apache2.service;已禁用;供应商预设:已禁用)
活动:自 2017 年 10 月 3 日星期二 14:22:01 UTC 以来失败(结果:退出代码);3 分钟 33 秒前
进程:17190 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
10 月 3 日 14:22:01 kudo2 apachectl[17190]: (98) 地址已在使用中:AH00072: make_sock: 无法绑定到地址 [::]:80
10 月 3 日 14:22:01 kudo2 apachectl[17190]: (98) 地址已在使用中:AH00072: make_sock: 无法绑定到地址 0.0.0.0:80
10 月 3 日 14:22:01 kudo2 apachectl[17190]:没有可用的监听套接字,正在关闭
10 月 3 日 14:22:01 kudo2 apachectl [17190]:AH00015:无法打开日志
10 月 3 日 14:22:01 kudo2 apachectl [17190]:操作“开始”失败。
10 月 3 日 14:22:01 kudo2 apachectl[17190]:Apache 错误日志可能有更多信息。
10 月 3 日 14:22:01 kudo2 systemd[1]: apache2.service: 控制进程退出,code=exited status=1
10 月 3 日 14:22:01 kudo2 systemd[1]:无法启动 Apache HTTP 服务器。
10 月 3 日 14:22:01 kudo2 systemd[1]:apache2.service:单元进入失败状态。
10 月 3 日 14:22:01 kudo2 systemd [1]:apache2.service:失败,结果为“退出代码”。根@kudo2:~#
postgresql - 奇怪的 systemctl 行为
我在我的 Ubuntu 16.04 上安装了 Postgres9.6 到apt-get
. 我在 AWS ubuntu 实例上安装了相同的版本来尝试复制。
我按照这个博客的步骤操作:
http ://www.rassoc.com/gregr/weblog/2013/02/16/zero-to-postgresql-streaming-replication-in-10-mins/
现在我可以登录到两台机器上的 postgres 用户,并运行 psql 并执行所有数据库操作。但是当我使用 检查服务器的状态(在两台机器上)sudo systemctl status postgres.service
时,我得到了这个:
● postgres.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead)
这很奇怪,因为我可以跑步psql
,对吧?
这使我无法创建远程连接。
traefik - 带有 systemd 的 traefik 看不到容器 docker
我想通过 systemd 启动 traefik,但是 systemd 与手动启动的结果不同。
这是我手动启动 traefik 的示例:
当我使用 systemd 时:
知道为什么我看不到我的容器 docker 吗?