标签: service

Apache 2.4 不可杀灭,无法在 Windows Server 上停止

我们有两个的Windows Server,一个在2012 R2和其他2008 R2,它使用Apache HTTP服务器httpd2.4中的代理服务器/反向代理模式(的使用ProxyPassProxyPassReverse和虚拟主机配置)。两台服务器都使用来自 Apache Haus 的Apache 2.4.27 x64二进制构建。

我们有一些备份脚本在两台服务器上运行。他们停止所有服务(包括 Apache),然后进行备份并再次重新启动所有服务。

几年来(近 4 年),这些脚本运行良好。但是从 开始July 12, 2018,行为现在很奇怪。备份脚本正在执行它们的工作,停止所有服务,进行备份,但是现在,除 Apache 之外的所有服务都重新启动。

经过排查,发现Apache 2.4.27服务无法停止。使用服务控制台并尝试手动停止服务时,控制台显示“正在停止”并且没有任何反应。

所以我检查了正在运行的进程,看到一个httpd.exe进程正在运行。我试图终止该进程,但没有运气。

所以,我试过:

taskkill /im "httpd.exe" /f /t
Run Code Online (Sandbox Code Playgroud)

输出是:

ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Run Code Online (Sandbox Code Playgroud)

所以我测试了pskill从 Sysinternals …

httpd service windows-server-2008-r2 windows-server-2012-r2 apache-2.4

11
推荐指数
1
解决办法
9161
查看次数

在哪里可以找到好的 SLA 协议?

我想找到一个提供示例服务级别协议 (SLA) 的网站。有谁知道我在哪里可以找到好的例子?

service sla

10
推荐指数
1
解决办法
539
查看次数

在 Debian 中禁用服务的推荐方法

是否有“推荐的方法”来禁用 Debian 中的服务?(禁用 = 服务已安装但不会在机器启动时自动启动。)

我知道您可以update-rc.d -f service remove(基本上删除了 中的链接rcX.d),但是这样做会丢失服务的序列号(SXXservice,XX 是序列号),当您想要重新启用该服务时,事情变得更加困难。我也知道我可以重命名链接,rcX.d这样它们就不会从S(或将它们移到其他地方)开始,但我想知道是否有一些“Debian批准的最佳实践”方法来做到这一点。

linux debian service boot

10
推荐指数
2
解决办法
4457
查看次数

服务:“手动”和“禁用”之间有什么真正的区别吗?

我只是看着我们的服务器,考虑禁用我们没有使用的任何服务,这让我想知道:

如果一个服务从来没有被任何东西调用来启动,它只是坐在“手动”上,在那种状态下它会占用任何系统资源吗?纯粹从系统资源 POV来看,将未使用的服务设置为“禁用”是否更好?

只是想知道资源是否有任何真正的区别?(忘记安全问题,这显然是另一个问题。)

windows windows-server-2008 service

10
推荐指数
1
解决办法
5968
查看次数

Windows 服务在重新启动后不会自动启动?

我们有一些用 .NET 编写的 Windows 服务。它们在服务 mmc 中手动启动良好,但尽管设置为自动,但在打开(或重新启动)机器时它们永远不会启动。

更新在事件日志中,我没有看到“xyz 已启动”以及所有其他服务正在启动,而是看到“xyz 服务进入停止状态”。和一个单独的错误,指出“在等待来自 slsvc 服务的事务响应时达到超时(30000 毫秒)。”。

如果我手动启动它们,那么我会按预期在事件日志中得到一个正常的条目,一切都很好 - 直到下一个 Windows 更新补丁强制重新启动并且所有服务再次关闭。

有任何想法吗?我试过将它们设置为延迟启动,没有明显区别。

windows .net service

10
推荐指数
1
解决办法
6万
查看次数

列出所有服务时问号是什么意思?

执行命令后,service --status-all我会得到我机器上所有服务的列表。我得到这样的输出。

[ ? ]  acpi-fakekey
[ ? ]  acpi-support
[ + ]  acpid
[ - ]  anacron
[ + ]  apache2
[ + ]  atd
[ - ]  bootlogd
Run Code Online (Sandbox Code Playgroud)

是什么?意思?我一直假设一个+过程是开始的,一个-过程是停止的。服务前面是什么状态?

这是我的/proc/version文件的内容,因为它可以帮助任何人回答我。

Linux version 2.6.32-5-amd64 (Debian 2.6.32-45)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

linux debian service

10
推荐指数
1
解决办法
4240
查看次数

systemd 如何在以不同用户身份启动服务之前以 root 身份运行命令?

我在带有以下 systemd 服务文件的 Fedora 17 机器上运行 svnserve:

[Unit]
Description=Subversion Server
After=syslog.target network.target

[Service]
User=svn
Type=forking
Environment=HOME=/repos/svn
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /repos/svn
PIDFile=/run/svnserve/svnserve.pid

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

只要 /var/run/svnserve 归 svn:svn 所有,这就可以正常工作,但是当该所有权重置为 root:root 时会在重新启动时中断。我想要的是添加一个 chowns 目录的预启动步骤。

不幸的是,我找不到任何关于 systemd 单元文件的真正文档,但我看到有些人在使用“ExecStartPre”,所以我尝试了这个:

ExecStartPre=/bin/chown svn:svn /run/svnserve
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这会因“不允许操作”错误而失败,因此看起来 ExecStartPre 也以单元文件中指定的用户身份运行。

我还尝试让单元文件以 root 身份运行,然后通过 su 以 svn 用户身份启动 svnserve,但这产生了一个关于命令行无效的模糊错误。

systemd 单元如何在以特定用户身份执行之前以 root 身份执行操作?

fedora service svnserve systemd

10
推荐指数
1
解决办法
2万
查看次数

如何使用 Chef 确保服务正在运行?

我的情况是,Chef 可能会启动一项服务 (postgres),但随后可能会在带外停止。我想要一个后续的 Chef 运行来导致服务运行。我试过这个:

service "postgresql" do
    action :start
end
Run Code Online (Sandbox Code Playgroud)

但它没有效果,(up to date)大概是因为 Chef 知道它已经启动并且无法判断它已经停止。(可能是由于service ... status此服务的行为方式?)如果我这样写:

# anti-pattern warning!
execute "force-start-postgresql" do
  command "service postgresql start || /etc/init.d/postgresql start"
  action :run
end
Run Code Online (Sandbox Code Playgroud)

我得到了想要的行为。也action :restart让它运行。然而,由于可移植性,这些看起来像是反模式(并且在后一种情况下可能会在再次启动之前停止它)。

那么,我如何告诉 Chef 强制启动该服务,即使它认为它已经在运行呢?

这是使用由 OpsCode 托管的 Chef 11.6 和默认的 postgresql 配方。(注意这很相似,但我认为与如何在 Chef 中强制对“最新”资源执行操作不完全相同。)

---编辑(在 jtimberland 帖子后澄清)---

-l debug这里显示:

DEBUG: service[postgresql] supports status, running
DEBUG: service[postgresql] is running
Run Code Online (Sandbox Code Playgroud)

即使它没有运行。所以这听起来像是一个错误,我对此很感兴趣。但是,我主要对是否有办法告诉厨师“始终调用服务启动命令,跳过状态检查”感兴趣。这就是这里的问题。

(我不是专家,但我认为确保服务运行的最便携方法是启动服务,这几乎总是幂等的。OTOH检查 …

postgresql service chef

10
推荐指数
1
解决办法
1万
查看次数

无法启动mysql服务

我无法从我的 ubuntu 服务器重新启动我的 mysql 服务。这是错误:

? mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)   
Active: failed (Result: exit-code) since mer. 2016-06-08 17:31:06 CEST; 54s ago
Docs: man:systemd-sysv-generator(8)   Process: 4087 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)

juin 08 17:31:06 SRV-OVH-GIC03-V /etc/init.d/mysql[4569]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
juin 08 17:31:06 SRV-OVH-GIC03-V /etc/init.d/mysql[4569]: [61B blob data]
juin 08 17:31:06 SRV-OVH-GIC03-V /etc/init.d/mysql[4569]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' …
Run Code Online (Sandbox Code Playgroud)

mysql service socket

10
推荐指数
1
解决办法
8万
查看次数

具有多个 After 的 systemd 服务

是否可以创建一个依赖于其他几个服务的服务?什么是正确的语法?

如:

[Unit]
Description=service description
Wants=network.target
After=network.target
After=syslog.target

[Service]
User=bootapp
ExecStart=/var/app/app.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

目标是在操作系统重新启动后自动启动服务,并确保在服务之前启动日志记录和网络服务。

附加问题:我需要指定Restart吗?

linux service systemd

10
推荐指数
1
解决办法
2万
查看次数