相关疑难解决方法(0)

如何在systemd服务中设置环境变量?

我有一个带有 systemdArch Linux 系统,我已经创建了自己的服务。配置服务/etc/systemd/system/myservice.service如下所示:

[Unit]
Description=My Daemon

[Service]
ExecStart=/bin/myforegroundcmd

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

现在我想为/bin/myforegroundcmd. 我怎么做?

systemd

275
推荐指数
6
解决办法
39万
查看次数

配置 Systemd 服务以使用 root 访问权限运行

我在 Raspbian Jessie 上使用 Systemd 设置了 node.js 应用程序形式的服务,它使用自己的用户帐户。但是,我发现该服务无法正常运行,因为它没有必要的权限。我安装的节点模块之一需要 root 访问权限。如果我使用 sudo 手动运行应用程序,一切正常。

有没有办法告诉 systemd 使用 sudo 运行服务?

linux daemon service systemd

36
推荐指数
2
解决办法
11万
查看次数

Redis 不以 systemctl 开头

我已经在 ubuntu 16.04 机器上安装了 redis,如果我运行/usr/local/bin/redis-server /etc/redis/cluster/7000/redis.conf它,它会启动并且我可以毫无问题地连接到它。

但是我想使用它来启动它systemctl start redis,所以我在以下位置创建了以下文件/etc/systemd/system/redis7000.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/cluster/7000/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

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

并且 redis 配置已supervised systemd设置

我认为看起来不错,但我收到以下错误:

Jan 19 14:54:27 ip-172-31-42-18 systemd[1]: Started Redis In-Memory Data Store.
Jan 19 14:54:27 ip-172-31-42-18 redis-server[21661]: 21661:C 19 Jan 14:54:27.680 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
Jan 19 14:54:27 ip-172-31-42-18 redis-server[21661]: 21661:C 19 Jan 14:54:27.680 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=21661, just started …
Run Code Online (Sandbox Code Playgroud)

ubuntu redis systemd systemctl

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

apache2:将文件保存在 /tmp 中的“system-private-[hash]”中,而不仅仅是保存代码中定义的文件夹

出于某种原因,当我尝试保存文件(由 PHP 在 下生成/www/appname/module)时 - 它保存在

/tmp/systemd-private-015eb2e9f67b4eef862c68e99fe0ba30-apache2.service-9h6i08

当瞄准文件保存在

/tmp/somename

文件保存在

/tmp/systemd-private-015eb2e9f67b4eef862c68e99fe0ba30-apache2.service-9h6i08/tmp/somename.

如何禁用此功能并“定期”将文件保存到 /tmp 目录?

无论如何,此默认功能的目的是什么?

file-permissions apache2

7
推荐指数
1
解决办法
4933
查看次数

为什么升级后 MariaDB 无法启动 (NO_NEW_PRIVILEGES)

在 DigitalOcean 上升级我的 debian(测试,jessie 到拉伸)服务器后,MariaDB 不会以服务 mariadb start 启动

我试图清除所有 mariadb-* 和 mysql-* 包,删除配置和数据,然后重新安装它们,但 mariadb-server-10.1.21-5 拒绝配置:

Setting up mariadb-server-10.1 (10.1.21-5) ...
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2017-02-09 21:25:27 CET; 10ms ago
  Process: 1696 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION …
Run Code Online (Sandbox Code Playgroud)

debian configuration selinux mariadb systemd

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

在启动 systemd 服务之前执行命令

我想在每次启动服务之前执行一个脚本。

我知道我可以ExecStartPre在服务定义文件内部使用,但我想知道是否可以在不编辑来自服务包的文件的情况下实现。

该脚本是一个简单的命令,完成后退出,它创建主服务使用的文件(它从安全存储中获取 TLS 证书和密钥)。

systemd

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

Systemctl 服务依赖,无需更改服务文件

我想让nginx服务依赖于我编写的服务,比如abc.service. 通过依赖,我的意思是:

  • nginx 当我停止时服务应该停止 abc
  • nginx 服务应该在我启动时启动 abc

一种典型的方法是修改/lib/systemd/system/nginx.service和添加Wants abc指令。但是,我不想修改nginx.service文件 - 因为它是随 nginx 包一起提供的。

还有其他方法可以做到这一点吗?

linux systemctl

0
推荐指数
1
解决办法
1450
查看次数