问题标签 [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.
portability - 便携式初始化脚本?
如何编写可移植的初始化脚本
- 新贵(Ubuntu)
- 系统
- 可选的 init.d
其他平台(Windows、Android、OS-X)在我的上下文中并不重要。
linux - 如何使 sysfs 更改在 centos 7 (systemd) 中持久化
试图在 CentOS 7 上修复我的苹果键盘上的 fn 键,我已经设置
然而在重新启动后
互联网上的建议包括运行 update-initramfs,这在 Centos 7 上似乎不存在,并在 /etc/rc.local 中执行“echo 2 >> /sys/module/hid_apple/parameters/fnmode”,其中当然在 systemd 下根本不存在。
保持该设置的正确方法是什么?
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 中?
ubuntu - DOCKER_OPTS 在配置文件 /etc/default/docker 中不起作用
我已经改变/etc/default/docker
了DOCKER_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
工作。
真的让我很困惑!
debian - Debian Jessie 卡在 systemd-fsck
更新到 Jessie 后,计算机将无法启动。每次启动都会在systemd-fsck处停止。
例如:[1.600804] systemd-fsck[194]:/dev/sdb1:干净,253534/14647296 文件,4095775/58568960 块
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)。
是否有任何示例/最佳实践可以实现这一目标?
linux - systemd 服务文件和 CapabilitiesBoundingSet
我试图通过在我的服务文件中使用 CapabilityBoundingSet 选项来减少 root 用户的能力。无论如何,我似乎无法阻止 root 写入文件。
例如,使用此服务文件:
所以,如果我有这个原始文件:
我的内核版本是 3.1.10。
我也尝试过使用空集或其他功能,但无法正常工作..可能有什么问题?
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。
任何想法可能导致这种延迟?
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 会再次提供帮助。
感谢您花时间提供帮助。
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)来解决这个问题,但没有任何成功。
我真的非常非常感兴趣如何进行这项工作,所以我在另一个线程上再次提出这个问题,因为我认为之前的答案是错误的、推测性的或特定于环境的。
仅包含类似的行
并且没有访问日志的迹象:(