问题标签 [systemd]

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.

0 投票
2 回答
285 浏览

portability - 便携式初始化脚本?

如何编写可移植的初始化脚本

  • 新贵(Ubuntu)
  • 系统
  • 可选的 init.d

其他平台(Windows、Android、OS-X)在我的上下文中并不重要。

0 投票
2 回答
4602 浏览

linux - 如何使 sysfs 更改在 centos 7 (systemd) 中持久化

试图在 CentOS 7 上修复我的苹果键盘上的 fn 键,我已经设置

然而在重新启动后

互联网上的建议包括运行 update-initramfs,这在 Centos 7 上似乎不存在,并在 /etc/rc.local 中执行“echo 2 >> /sys/module/hid_apple/parameters/fnmode”,其中当然在 systemd 下根本不存在。

保持该设置的正确方法是什么?

0 投票
2 回答
2846 浏览

linux - linux/systemd 中是否有可编程的 automount/autofs 挂钩?

我想在对特定设备/共享/挂载进行挂载尝试之前执行一个程序。例如,我想让 autofs/amd 控制 /data/{1..10},当一个进程打开 /data/4(并且 /data/4 当前没有挂载)时,会调用一个脚本,例如作为 '/usr/local/bin/preparedata 4'(4 是 autofs 控制目录中的挂载点名称),在尝试挂载之前。例如,我可以动态附加 iSCSI LUN(将在 autofs 映射中引用),或启动具有 NFS 导出(在映射中指定)的远程系统/VM。

如果缺少,我很乐意添加详细信息。

更新:我注意到 systemd 似乎正在拦截 open() 调用,有什么方法可以做到这一点,特别是在 systemd 中?

0 投票
9 回答
41890 浏览

ubuntu - DOCKER_OPTS 在配置文件 /etc/default/docker 中不起作用

我已经改变/etc/default/dockerDOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"(ubuntu 14.04中的docker版本1.4.1),但它对我没有任何影响(不在端口监听2375)。似乎 docker 没有读取这个初始配置文件,因为我发现export http_proxy环境也不起作用。

sudo docker -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -d工作。

真的让我很困惑!

0 投票
2 回答
1761 浏览

debian - Debian Jessie 卡在 systemd-fsck

更新到 Jessie 后,计算机将无法启动。每次启动都会在systemd-fsck处停止。

例如:[1.600804] systemd-fsck[194]:/dev/sdb1:干净,253534/14647296 文件,4095775/58568960 块

0 投票
0 回答
875 浏览

linux - 使用 upstart/systemd 检测创建一个 sysv 初始化脚本

我正在尝试为 Ubuntu upstart/Debian SysV 和 systemd 系统创建一组通用的初始化脚本。

我意识到对于新贵来说,我总是可以简单地检查我的/etc/init.d/appname文件:

(或者我可以像一些 Ubuntu 脚本那样获得更高级的并将相关命令转发给新贵)

是否有类似的方法来检测 systemd 是否正在使用并退出或重定向到 systemctl?我意识到很多 openSUSE 脚本都重定向到 systemctl,但是看看这些脚本,我不明白它们是如何做到这一点的。我猜这是通过/etc/rc_status它们包含的文件,但这似乎是 openSUSE 特定的,不适用于 CentOS。

最终我想支持 Ubuntu 14、Debian 7、CentOS/RHEL 7 和 openSUSE(任何 systemd)。所以我的 systemv init 脚本实际上只适用于 Debian,并且只会在每个其他发行版上都带有一条消息(或以某种标准方式重定向到 systemctl/upstart)。

是否有任何示例/最佳实践可以实现这一目标?

0 投票
1 回答
1981 浏览

linux - systemd 服务文件和 CapabilitiesBoundingSet

我试图通过在我的服务文件中使用 CapabilityBoundingSet 选项来减少 root 用户的能力。无论如何,我似乎无法阻止 root 写入文件。

例如,使用此服务文件:

所以,如果我有这个原始文件:

我的内核版本是 3.1.10。

我也尝试过使用空集或其他功能,但无法正常工作..可能有什么问题?

0 投票
1 回答
365 浏览

c++ - 带有“Accept=true”的 systemd 套接字在服务启动之前有很长的延迟

我有一个与@.service 配对的systemd .socket。套接字包含“Accept=yes”,以便通过指定端口接受来自客户端的 TCP 连接,然后创建一个 @.service 实例,该实例执行我的服务器程序来处理 TCP 连接。目前,我正在使用一个连接到服务器(linux c++)的客户端(Windows 软件)进行测试。

我的问题是,对于第一次客户端连接尝试,TCP 连接成功,但在 systemd 启动关联的@.service 之前有很长的延迟(5-10 秒)。任何后续连接几乎都会立即启动@.service,除非收到 TCP RST 数据包。如果接收到 TCP RST 数据包,则在启动 @.service 之前延迟 5-10 秒再次进行下一个连接,并且循环重复自身。

我的 .socket 文件非常简单。对于 [Socket] 部分,它实际上只是指定了一个 ListenStream 端口和 Accept=true。

任何想法可能导致这种延迟?

0 投票
1 回答
1565 浏览

node.js - 在 Linux (Debian) 上使用 systemd 连接到 MongoDB 托管 Meteor (MeteorJS)。错误:URL 必须采用 mongodb://user:pass@host:port/dbname 格式

我有一个简单的 Meteor Web 应用程序,我试图在我自己的服务器上托管。服务器详情;

  • Debian (Jessie) Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08) x86_64 GNU/Linux
  • 系统
  • NodeJS 版本 0.10.36
  • 流星版本 1.0.3.1
  • MongoDB 版本 2.6.7

/etc/systemd/system/customwebapp.service 文件;

我使用创建服务帐户;

我使用构建 Meteor 应用程序;

我尝试注册服务;

系统日志报告以下内容;

我已经尝试了几个小时来解决这个问题。我使用了许多不同的 MONGO_URL 值。我使用 mongo 命令在 MongoDB 中创建了一个管理员或 root 用户,并将 user:pass@localhost:27017/customwebapp 格式放入 URL 环境变量中。

无论我做什么,它都会返回相同的错误。

我也尝试过使用 Meteor Up,但它似乎配置了 Upstart 而不是 systemd。

不用说,我已经尝试了 SO 的大量解决方案。此处并未列出我尝试过的所有解决方案。

我怀疑我遇到问题的原因是因为 systemd。

这是我关于 SO 的第一个问题,因为老实说,我遇到的大多数问题都是其他人遇到的问题。SO对我的帮助非常出色,并且有很多次。现在我希望 SO 会再次提供帮助。

感谢您花时间提供帮助。

0 投票
2 回答
17422 浏览

logging - Nginx 日志到标准错误

我想将 nginx 访问日志重定向stdout到能够通过journalctl(systemd)分析它们。

与批准的答案有相同的问题。 让 nginx access_log 和 error_log 记录到主进程的 STDOUT 和 STDERR 但它对我不起作用。随着/dev/stderr我得到open() "/dev/stderr" failed (6: No such device or address). 由于/dev/stdout我无法访问登录journalctl -u nginx

nginx.conf

站点名称.conf

nginx.service

我已尽力通过更改上面代码中的每个可能参数并使用不同的 nginx 版本(1.2、1.6)来解决这个问题,但没有任何成功。

我真的非常非常感兴趣如何进行这项工作,所以我在另一个线程上再次提出这个问题,因为我认为之前的答案是错误的、推测性的或特定于环境的。

仅包含类似的行

并且没有访问日志的迹象:(