问题标签 [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.
plone - 克隆和 systemctl
我尝试将 Plone 与基于 systemctl 的启动集成(在 openSUSE 12.3 上)
作为第一次尝试,我有一个非常简单的 plone.service 文件
检查 systemclt status plone 我看到进程已启动,但它们立即再次消失。我也试过Type=Daemon,但结果是一样的。有什么提示是我的错误吗?
该服务实际上成功地找到/执行了 plonectl 脚本,只是进程很快死亡
我确实有一个 SysV 风格的初始化脚本,它通过 systemctl 工作,但我认为拥有一个服务文件会很棒,因为它应该比各种浮动的初始化脚本更通用。
ruby-on-rails - 在服务器启动时启动 ruby rake 任务
我有几个 Rails rake 任务需要在服务器启动时启动。我一直在寻找使用 systemd 让它们作为传统服务运行。服务文件是在下面创建的,/etc/system/systemd
但不幸的是,systemd 似乎没有找到该文件:
我目前正在使用 Fedora 15
如何使我的 systemd 服务正常工作?有没有另一种方法可以让我的 rake 任务在系统启动时运行。
更新: screens.service 文件内容
我知道当我需要它在启动时工作时我需要设置依赖项,但目前我正在尝试使用 systemctl 命令启动我的 rake 并稍后担心它的依赖项。
fedora - 我在 Fedora 18 上有一个 SysV 初始化脚本。如何在网络准备好后启动它?
我在 Fedora 18 上有一个 SysV 初始化脚本。Fedora 18 使用 systemd(显然,没有办法切换回 SysV)。
我的脚本需要网络准备好。目前,在脚本运行时,网络还没有准备好。如何确保我的 SysV 初始化脚本在网络启动后运行?
我的脚本的开头如下所示:
erlang - 有没有办法阻止 Erlang 服务器自动启动 epmd?
如果 Erlang 服务器尚未运行,它将自动生成 epmd(Erlang 端口映射器守护进程)。我更愿意使用 systemd 作为单独的服务来管理 epmd。这样如果我在一台主机上运行多个 Erlang 服务器(例如 RabbitMQ 和 ejabberd),如果自动生成 epmd 的服务器关闭,epmd 不会消失。systemd 将在服务关闭时清理任何杂散进程,因此自动生成的 epmd 将无法生存。
在启动任何 Erlang 服务器之前,我主要可以通过确保 epmd 作为单独的服务运行来处理这个问题,但我想进一步确保 epmd 仅作为单独的服务运行。
hadoop - mac osx 10.8.4 上缺少 systemd
我最初的目标是安装 hadoop,但我被困在“ssh localhost”这一步。
ssh:连接到主机 localhost 端口 22:连接被拒绝
很少有在线帮助,例如http://zhegu.wordpress.com/2012/10/30/connect-to-host-localhost-port-22-connection-refused/
提示我使用 systemctl 来启用 sshd,但后来我发现 /usr/bin 中没有 systemctl
另一个提示是安装 systemd 包以获得 systemctl。然而,我没有找到关于在哪里可以获得 systemd 的更多信息。
不过,在 osx 10.7 上安装 hadoop 似乎是可行的。(http://dennyglee.com/2012/05/08/installing-hadoop-on-osx-lion-10-7/)所以我推测应该有一些方法可以解决我的问题。
提前感谢您的帮助!
tizen - 在 Tizen 上连接到 systemd 的用户实例
所以,我已经阅读了移植指南(https://wiki.tizen.org/wiki/Porting_Guide)。有一个名为“Tizen Bootup Overview”的部分。本节说明 systemd 守护程序的用户实例已运行。当我运行模拟器时,我可以看到它,ps aux | grep systemd
并且我看到它是由 user 运行的app
。但是当我systemctl --user list-units
以app
用户身份输入时,我会收到以下消息Failed to issue method call: Failed to execute program /bin/false: Success
。但是,当我/usr/lib/systemd/systemd --user &
以app
用户身份输入并且仅调用 list-units 方法时,它运行正常。请问我对跑步有什么不明白的地方systemctl --user list-units
?
据我了解,DBus 服务文件已经将 /bin/false 作为指定的可执行文件,以避免systemd --user
意外激活 DBus。但是看看systemctl
我看到的来源,当使用--user
选项运行时,它会尝试连接到 DBus 以"unix:path=$XDG_RUNTIME_PATH/systemd/private"
我对 systemd 和 dbus 都很陌生。我尝试/usr/lib/systemd/systemd --user &
在我的程序连接到 systemd 之前调用它并且它工作,但 systemd 开始执行用户目标。我连接到 DBus dbus_bus_get(DBUS_BUS_SESSION, &err)
(DBUS_BUS_SESSION
是连接到用户实例,正如我通过查看来源了解的那样systemd & Co
)
PS:Tizen 使用systemd v43
提前致谢。
对不起我的英语不好。
tizen - systemd的用户实例是如何启动的?
所以,我已经阅读了移植指南(https://wiki.tizen.org/wiki/Porting_Guide)。有一个名为“Tizen Bootup Overview”的部分。
在 Tizen 中如何启动 systemd 的用户实例?我知道它什么时候开始,但谁来做呢?
python - 从systemd运行持久的python脚本?
我有一个 python 脚本,可以解码来自 USB 设备的输入并将命令发送到 php 脚本。从控制台运行时,该脚本运行良好,但我需要它在启动时运行。
我创建了一个 systemd 服务来启动脚本,它似乎运行良好,除了该systemctl start service-name
过程永远不会让我返回命令提示符。在它运行时,我可以完全按照预期与输入设备进行交互。但是,如果我用 ctr-z 退出systemctl start
进程,脚本只会运行几秒钟。
这是我编写的 .service 文件:
这是我的python脚本:
如何让脚本从服务文件异步运行,让启动命令完成,脚本可以在后台继续运行?
python - python 应用程序(守护进程)和 systemd fedora
我有带有循环的 python 应用程序,它生成一些文件,保存视频图像和其他一些东西。我将它安装在 Fedora (17) PC 上并希望它“永远”运行,即如果它挂起(我可以将一些 keep_alive 放入循环文件中) - 它应该重新启动。它也应该在重新启动时启动。据我了解,python-daemon 有助于做到这一点,并且在 Fedora 中使用 systemd。我有以下 systemd 配置文件(我不确定某些参数,因为文档对于我的 linux 知识水平来说太复杂了):
这是我的testd.py:
当我用“sudo systemctl start tpr.service”运行它时,它会挂起一段时间,然后用这个消息取消:
警告:磁盘上的 tpr.service 单元文件已更改,建议使用“systemctl --system daemon-reload”。tpr.service 的作业失败。有关详细信息,请参阅“systemctl status tpr.service”和“journalctl -xn”。
以下是来自 /var/log/messages 的一些日志:
所以它应该正在运行,但是这个错误是什么?也许有一些简单方便的方法来完成我的任务,我正在发明自行车?
更新:
似乎守护进程应该以某种方式让 systemd 知道它已经启动..但是如何?
linux - Linux:在连接的 USB 串行加密狗上启动守护程序
在我的 Linux(BeagleBone Black 上的 Angstrom 发行版)上,我有一个 USB 加密狗,它显示为串行端口,默认情况下可用作/dev/ttyUSB0
我想启动一个守护进程,它将连接到串行端口并使其作为套接字可用。我有这个 USB 到插座桥接器的代码,它在手动启动时工作。
我希望它在系统启动时自动启动,假设 USB 加密狗已插入。我应该怎么做?
迄今为止的尝试:
systemd:我创建了一个带有条件
After: remote-fs.target
和的 systemd 服务After:syslog.target
,但是(似乎)USB 加密狗当时还没有准备好,并且守护程序的启动失败。是否有其他 systemd
targets
或services
条件,以便仅在 udev 完成设备安装并且网络准备好时启动守护程序?udev:我创建了一个 udev 规则,例如
KERNEL=="ttyUSB?", RUN+="/path/to/daemon.sh"
成功执行。但是守护进程(在该脚本中作为后台进程启动,带有“&”)似乎没有执行。从 udev 规则中分叉长时间运行的进程似乎也令人不悦。
正确的方法是什么?