标签: services

编写基本的 systemd 服务文件

我正在开发一个 Nodejs 应用程序,用户通过 localhost 上的 HTTP 与之交互。几乎没有参数,守护进程几乎没有依赖关系,它只需要在登录时启动。

我想按照每个平台上的习惯用法来启动脚本,这意味着 Ubuntu 上的 Upstart 和 Fedora 上的 systemd。

  • 有没有写systemd系统文件的好教程?
  • 是否有任何“最佳实践”需要注意?

我找到了这些资源:

我主要是在寻找各种 API 作为参考,以及要遵循的基本格式。

systemd services

116
推荐指数
3
解决办法
18万
查看次数

如何在 Ubuntu 上重新启动 SSH 守护进程?

当我输入时,service sshd restart我收到一个sshd: unrecognized service错误。

我确实有,在我用来设置 config.js/etc/ssh/的文件sshd_config中。我也可以将腻子放入 Ubuntu 盒子(它是远程的)。

当我输入时,/etc/init.d/sshd restart我得到No such file or directory

下面/usr/sbin/有一个 sshd 文件,但它是二进制的。

我的 sshd 有问题吗?我该怎么做才能解决这个问题?明确地说,我希望能够输入service sshd restart(就像所有在线教程所说的那样)能够重新启动我的 sshd。使我的端口更改生效。

ubuntu upstart services sshd

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

可用服务列表

是否有任何命令可以显示我的基于 Debian 的操作系统中的所有可用服务

我知道为了查看您可以使用的所有正在运行的服务service --status-all

debian services

103
推荐指数
4
解决办法
38万
查看次数

我们如何允许非 root 用户控制 systemd 服务?

使用sysvinit,这样的sudoers条目就足够了:

%webteam cms051=/sbin/service httpd *
Run Code Online (Sandbox Code Playgroud)

这将允许以下命令:

  • sudo service httpd status
  • sudo service httpd restart

现在,使用systemd,服务名称是最后一个参数。即,服务重启将通过以下方式完成:

systemctl restart httpd.service
Run Code Online (Sandbox Code Playgroud)

自然,我认为定义命令systemctl * httpd.service会起作用,但这会允许类似systemctl restart puppet.service httpd.service的效果不是预期的。

考虑到这一点,那么允许非 root 用户控制systemd服务的最佳方式是什么?这不需要是sudoers;也许文件权限更改可能就足够了?

sudo systemd not-root-user services

91
推荐指数
5
解决办法
13万
查看次数

Debian 中的服务如何工作,我该如何管理它们?

在 Windows 中,我有服务管理器,在那里我可以看到所有系统服务,这些服务可以通过 Windows 本身启动,我设置了它使用的用户,权限管理在那里,我可以将变量和其他一些信息传递给服务,我可以命名它们,我可以创建一个程序的重复服务等等。所以我在 Windows 中有一个主要的管理工具。

我如何在 Linux 中做同样的事情?如何在启动时触发运行“svnserve”,或者如何将服务配置为在特殊上下文中运行。如何查看所有“程序化”服务?

startup subversion debian services sysvinit

86
推荐指数
2
解决办法
24万
查看次数

SystemD 服务的状态“活动(退出)”是什么意思?

我正在使用一个自定义服务,该服务本质上运行一个名为 thisismywebserver 的 Web 服务器。目前它不起作用(即我在尝试访问页面时遇到“无法连接”错误)。

当我运行此命令service thisismywebserver status查看服务状态时,我看到状态为“活动(退出)”。这是否意味着该服务已停止工作?如果不是,那么这意味着什么?

root@thisismywebserver-testing:~# service thisismywebserver status
? thisismywebserver.service - LSB: ThisIsMyWebServer server
   Loaded: loaded (/etc/init.d/thisismywebserver)
   Active: active (exited) since Sun 2015-11-08 23:01:33 EST; 18h ago

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Run Code Online (Sandbox Code Playgroud)

linux systemd services sysvinit

74
推荐指数
2
解决办法
12万
查看次数

Systemd 服务 - 什么是“multi-user.target”

我遇到了一个.service包含以下内容:

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

原始.service文件可以在这里找到。

我在 Ubuntu 16.04LTS 上。

ubuntu systemd services

74
推荐指数
3
解决办法
7万
查看次数

在 PuTTY 或终端关闭后保持进程运行

我在Raspbian (Debian) 机器上运行Node.js服务器,我想远程启动和停止服务器。这对我来说意味着使用PuTTY访问 shell,除非当我关闭 PuTTY 终端或超时时,我的服务器会随之关闭,因为我只是在前台执行我的服务器。

有没有办法让它继续下去,但之后仍然有办法终止进程?

ssh session services sysvinit

70
推荐指数
4
解决办法
29万
查看次数

Ubuntu 可用服务的完整列表

这个问题与这个问题非常相似:List of available services

对于我的具体情况,我想知道是否有特定命令可以显示 Ubuntu 下的完整服务列表。

我确实运行了 als /etc/init.d并且它确实显示了一个非常全面的列表,但是缺少一些条目。我也看到apache2myslqgdm,和很多其他人。

但其中一些丢失了。一个例子是plexmediaserver(我最近安装了 plex 服务器,但在查找它的服务名称时遇到了一些困难)

所以用尽可能少的词来重新表述这个问题:
有没有办法获得{x} for的完整可能性列表

service {x} status
Run Code Online (Sandbox Code Playgroud)

注意:使用 Ubuntu 15.04

ubuntu services

67
推荐指数
2
解决办法
15万
查看次数

为什么我的 systemd 用户单元不在启动时启动?

我正在尝试创建一个 systemd 用户单元并让它在系统启动时启动。该服务会手动启动,但不会在启动时启动。

从网上搜索我了解到,为了让用户单元在启动时启动,我应该运行loginctl enable-linger <username>,但这似乎根本没有效果。事实上,手册页说:

       Enable/disable user lingering for one or more users. If enabled for
       a specific user, a user manager is spawned for the user at boot and
       kept around after logouts. This allows users who are not logged in
       to run long-running services.
Run Code Online (Sandbox Code Playgroud)

尽管运行此命令,但我的服务并未在启动时启动。

loginctl enable-linger error
Run Code Online (Sandbox Code Playgroud)

那个单位:

$ cat ~/.config/systemd/user/thin\@.service
[Unit]
Description=A fast and very simple Ruby web server

[Service]
Type=simple
EnvironmentFile=/home/error/.config/thin/%i
ExecStart=/usr/bin/bash /home/error/.rvm/wrappers/%i/thin start -a $THIN_BIND -p $THIN_PORT
WorkingDirectory=/srv/www/%i
PrivateTmp=true

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

fedora systemd not-root-user services

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