博客文章“为您的域提供 'tinyurl' 服务”说明了如何使用 Google Apps 为您的域设置 ShortName 服务。例如,如果您的域是example.com并且您使用 Google Apps,您可以将其配置http://go.example.com为您企业的个人 ShortName 服务。
注意:这不是创建一个供全世界使用的“tinyurl”服务。这是针对企业的。
拥有一个只有您的用户可以使用的短名称服务非常有用,这样您就可以创建指向内部页面的链接。您可以说“今天的午餐菜单位于http://go.example.com/lunch ” ,而不是告诉人们一个长而难懂的 URL 。博客文章记录了授权人们建立自己的链接的一些好处。(最重要的是:他们不必打扰您设置新链接!)
系统的问题是 URL 仍然很长。人们宁愿在他们的网络浏览器中输入“go/lunch”并让它工作。遗憾的是,由于 HTTP 协议工作方式的技术问题,Google Apps 无法支持这一点。HTTP 1.1 中的“Host:”标头列出了用户在其 Web 浏览器中键入的域,而不是FQDN。换句话说,当 Google Apps 收到“ http://go/lunch ”的HTTP 请求时,网络服务器会收到“go”作为主机名。由于谷歌Apps的提供许多领域这项服务,如果你想它不能告诉go.example.com或go.some-other-example.com。
因此,用户每次都必须输入“go.example.com/lunch”,这比“go/lunch”要长得多。
谷歌可以通过使用网络 cookie 或其他一些方案来解决这个问题。没有一个是特别干净或容易的。在他们这样做之前,您可以通过设置自己的机器来解决问题,该机器将请求作为“go”接受并重定向它们。
服务器接受名为“go”的站点的 HTTP 请求并将请求重定向到go.example.com. 然后您创建正确的 DNS 记录以使其正常工作,并调整您的 DHCP 配置,以便您的笔记本电脑/工作站做正确的事情。
此服务器故障文档的重点是解释该过程,然后提供配置示例以帮助您为您的站点执行此操作。由于我无法访问或了解世界上的每个操作系统,因此我将其设为“社区 wiki”,以便人们可以填写配置片段以供他们使用。我已经把“TODO”放在特别需要改进的地方。
在本例中,我们将使用“example.com”作为域。
go.example.com正常配置服务。测试它并确保类似的 URLhttp://go.example.com/foo有效。如果这不完整,请不要继续。这就像在你拥有一辆汽车之前试图修理你的汽车一样。
我正在使用 puppet(理论上)让 npcd 在安装时启动,但是在 Ubuntu 上,该服务随 RUN="no" 的 /etc/default/npcd 中的默认设置一起安装:
$ cat /etc/default/npcd
# Default settings for the NPCD init script.
# Should NPCD be started? ("yes" to enable)
RUN="no"
# Additional options that are passed to the daemon.
DAEMON_OPTS="-d -f /etc/pnp4nagios/npcd.cfg"
Run Code Online (Sandbox Code Playgroud)
我认为这个 puppet 配置块会处理以下事情:
service { "npcd":
enable => true,
ensure => "running",
require => Package["pnp4nagios"],
}
Run Code Online (Sandbox Code Playgroud)
但可惜,它没有,而且没有实际重写 /etc/default 中的文件,我不知道该怎么做。有没有一种直接的方法来启用我没有看到的服务?
作为记录,我使用的是 Ubuntu 12.04.2 和 puppet 版本 3.1.0。
我需要在 Red Hat 中安装一个程序作为服务。它不后台运行、管理其 PID 文件或管理自己的日志。它只是运行并打印到 STDOUT 和 STDERR。
使用标准的 init 脚本作为指南,我开发了以下内容:
#!/bin/bash
#
# /etc/rc.d/init.d/someprog
#
# Starts the someprog daemon
#
# chkconfig: 345 80 20
# description: the someprog daemon
# processname: someprog
# config: /etc/someprog.conf
# Source function library.
. /etc/rc.d/init.d/functions
prog="someprog"
exec="/usr/local/bin/$prog"
[ -e "/etc/sysconfig/$prog" ] && . "/etc/sysconfig/$prog"
lockfile="/var/lock/subsys/$prog"
RETVAL=0
check() {
[ `id -u` = 0 ] || exit 4
test -x "$exec" || exit 5
}
start() {
check
if [ ! …Run Code Online (Sandbox Code Playgroud) 在 Ubuntu 服务器上运行 Monit 5.4。当我使用 时monit reload,它似乎会重新启动受监控的服务(在这种情况下为 Tomcat 7)。这是预期的行为吗?文档说:
reload - 重新初始化正在运行的 Monit 守护进程,守护进程将重新读取其配置,关闭并重新打开日志文件。
我希望它不会重新启动任何服务,而只会重新加载它的配置,这样我就可以更改电子邮件警报和其他内容。
这是输出 monit status
The Monit daemon 5.4 uptime: 15h 0m
Process 'tomcat7'
status Running
monitoring status Monitored
pid 38842
parent pid 1
uptime 14h 30m
children 0
memory kilobytes 3445964
memory kilobytes total 3445964
memory percent 10.4%
memory percent total 10.4%
cpu percent 14.8%
cpu percent total 14.8%
port response time 0.018s to localhost:80 [HTTP via TCP]
data collected Tue, 17 …Run Code Online (Sandbox Code Playgroud) 我已经为我的生产服务器编译了带有自定义路径的 nginx,当我尝试使用以下命令启动/重新启动服务时:
service nginx start
Run Code Online (Sandbox Code Playgroud)
或者
service nginx restart
Run Code Online (Sandbox Code Playgroud)
它进入一个新行而不返回shell:

所以问题是我无法使用service命令控制nginx 。该服务实际上在运行,但它不会向我返回一个 shell,所以我总是必须按ctrl+c才能将其取回。
我还必须提到 nginx 在通过自己的nginx命令调用它时运行得很好,并且使用nginx -s stop/reload.
这个问题在使用systemctl start nginx中仍然存在,但systemctl stop nginx工作得很好。
信息:
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
$ uname -r
4.2.0-27-generic
$ nginx -V
nginx version: nginx/1.9.11
built by gcc 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2)
built with OpenSSL 1.0.2d 9 Jul 2015
TLS SNI support enabled
configure …Run Code Online (Sandbox Code Playgroud) 在我被击落之前,我知道如何安排任务、使用 powershell 重新启动服务或授予非管理员帐户重新启动服务的权限。那不是问题。然而,问题是所有这三个任务的组合。
我有一个 Windows 服务需要处理网络文件夹上的文件。因此,它使用“服务帐户”登录,该帐户实际上只是一个普通的域帐户。此域帐户不是管理员,但具有对该文件夹的访问权限。该服务运行良好,并完成它的工作。
但是,有时某个文件中的错误会阻止处理其他文件。通常需要一段时间才能有人注意到并且有一些积压。
因此,我在 powershell 中创建了一个监控脚本,用于轮询网络文件夹中的这些错误文件。如果找到,文件将移动到临时文件夹以供查看,并且需要重新启动服务。
我通过组策略授予服务帐户权限来启动和停止服务。
当我使用服务帐户登录到服务器时,我可以使用服务 MMC 手动重新启动服务。我还能够执行 powershell 脚本,它完全按照预期执行:轮询文件夹、移动文件并重新启动服务。伟大的!
在下一阶段,我创建了一个每 10 分钟运行一次的计划任务。该任务使用与服务相同的服务帐户来执行 powershell 脚本。选中“以最高权限执行”框。就像我说的,powershell 脚本需要访问网络驱动器,所以我不能以本地服务器管理员的身份运行它,我不想使用域管理员凭据来执行这样的琐碎任务。(我尽量实现最小特权原则。)
我使用本地安全策略 MMC 在本地服务器上为服务帐户提供了“作为批处理作业登录”的权限。
现在对于我无法弄清楚的部分:在预定时间计划任务成功完成并且正在执行 powershell 脚本。脚本轮询文件夹并移动错误文件。唯一不起作用的是重新启动服务......?!同样,手动运行脚本,因为同一用户工作得很好。
我在事件查看器中看不到太多内容,但是我的脚本上的日志指出了这个错误:
TerminationError(Stop-Service): “无法在计算机 '.' 上打开服务控制管理器。此操作可能需要其他权限。”
我用来重启服务的命令是:
Stop-Service -Verbose -DisplayName $($service[1])
...
Start-Service -Verbose -DisplayName $($service[1])
Run Code Online (Sandbox Code Playgroud)
(我在 2008 R2 域上使用 Windows Server 2012 R2 和 powershell 版本 4。)
更新: 我都试过,可以通过使用SUBINACL用户的服务权限(如描述这里)和手动设置SDDL字符串(如描述在这里),所以我的控制标志是这样的(A ;; CCLCSWRPWPDTLOCRRC ;;; S-1- X-XX-XXXXXXXXXX-XXXXXXXX-XXXXXXXXX-XXXX)。我还尝试在 GPO 中将该服务的权限设置为完全控制。这些都没有解决问题。这一定是我仍然忽略的某个地方的特权问题,因为当我使用服务器上的本地管理员域帐户安排任务时,它工作得很好。
powershell service-accounts scheduled-task service windows-server-2012-r2
有没有办法重命名Windows服务?请注意,不是显示名称,而是实际名称。我似乎无法将 enum\root 中的值编辑为我想要的值,应该有更简单的方法,我就是找不到!
在 Ubuntu 10.04 上,我需要使用 upstart 启动我的服务,但前提是 mysql 启动并运行。
问题是 mysql 本身不是由 upstart 处理的,所以我不能使用“启动”功能。
我能做什么 ?
我正在尝试在 ubuntu 16.04 上安装清漆,
我读了几篇文章都没有工作。从我读到的内容来看,从 ubuntu 15.04 开始,配置 varnish 的方式发生了变化(因为 systemd)。
现在我有一个真正的烂摊子,不起作用:
/etc/default/varnish :
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Run Code Online (Sandbox Code Playgroud)
/etc/varnish/default.vcl(通常它指向一个指向 127.0.0 和端口 8080 的主机,但出于调试目的,我将其修改为外部域) vcl 4.0;
# Default backend definition. Set this to point to your content server.
backend default {
.host = "www.varnish-cache.org";
.port = "80";
}
Run Code Online (Sandbox Code Playgroud)
/etc/apache2/ports.conf
Listen 8080
Run Code Online (Sandbox Code Playgroud)
grep -R 'ExecStart=/usr/sbin/varnishd' /etc/
/etc/systemd/system/varnish.service:ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
/etc/systemd/system/varnish.service.d/customexec.conf:ExecStart=/usr/sbin/varnishd -a …Run Code Online (Sandbox Code Playgroud) 我们有两个的Windows Server,一个在2012 R2和其他2008 R2,它使用Apache HTTP服务器(httpd)2.4中的代理服务器/反向代理模式(的使用ProxyPass,ProxyPassReverse和虚拟主机配置)。两台服务器都使用来自 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