问题标签 [daemons]
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.
linux - 将 bash 脚本作为守护进程运行
我有一个脚本,它每 X 次运行我的 PHP 脚本:
我怎样才能将它作为守护进程启动?
linux - 如何在 Linux Ubuntu 中创建 .sh 扩展文件?
我正在尝试编写一个脚本来将我的一个.jar
文件作为守护进程运行,但我不明白如何.sh
在 Ubuntu 中创建扩展文件。我已经用vi
我想要的代码创建了一个文件,但我不知道如何将文件定义为专门的 .sh 文件。例如,我想将我的文件“ foo
”或“ foo.txt
”转换为“ foo.sh
”。
是否有一个我看不到的简单命令可以将文件转换为 .sh 扩展名,或者它是一个更复杂的过程?
python - 将参数从 sh 脚本(从 etc/init.d/skeleton 重制)传递给 python
我有一个脚本,我需要他将参数传递给 python 程序。我接受论点:
其中 $DAEMON 是我的 .py 文件的路径。我需要像这样传递一些数字参数
我必须将这个数字传递给 sleep.py。sleep.py 的代码:
如何使 n = 10(从控制台传递的参数)?
python - 正确的守护进程行为(来自 PEP 3143)解释
我在 Python 中有一些 [针对我的 RPi] 的任务,其中涉及很多内容sleep
:做一些需要一两三秒的事情,然后等待几分钟或几小时。我想在那个睡眠时间将控制权交还给操作系统(Linux)。为此,我应该守护这些任务。一种方法是使用 Python 的标准守护进程库。
但是守护进程并不那么容易理解。根据PEP 3143的基本原理段落,表现良好的守护进程应该执行以下操作。
- 关闭所有打开的文件描述符。
- 更改当前工作目录。
- 重置文件访问创建掩码。
- 在后台运行。
- 与进程组解除关联。
- 忽略终端 I/O 信号。
- 与控制终端解除关联。
- 不要重新获取控制终端。
- 正确处理下列情况:
- 由 System V init 进程启动。
- 通过 SIGTERM 信号终止守护进程。
- 儿童产生 SIGCLD 信号。
对于像我这样的 Linux/Unix 新手来说,其中的一些很难解释。但我想知道我为什么要做我所做的事情。那么这个理由背后的理由是什么?
hadoop - 无法运行 Hadoop 守护进程
当我运行 jps 命令时:
作为回报,我只将 jps 视为正在运行的 java 程序。
当我运行 start-all.sh 命令时,我收到如下错误:拒绝连接到端口 22
linux - 无法在 Ubuntu 上运行 systemd 服务守护进程(如何切换到 Upstart 或者是否有更新的发行版)
注意:我没有任何实际管理服务器或在任何深度级别使用 Linux 的经验,因此我的知识和理解非常有限。从本质上讲,我正在即兴发挥。
有关完整的代码示例,请参见:https ://github.com/Integralist/Vagrant-Examples/tree/master/nodejs
这是一个两部分的问题:
- 无法挂载我的共享目录
systemd
服务不可用
我正在尝试创建一个启动 NodeJS 应用程序的服务,但它看起来systemctl
在我安装的 Ubuntu 版本上不可用(https://vagrantcloud.com/ubuntu/trusty64)。
这是我的Vagrantfile
:
以下是setup.sh
创建.service
文件的配置脚本的内容:
但是当我运行时,vagrant up
我得到以下错误输出:
所以我的第一个问题是我似乎无法挂载我的共享文件夹。
此外,最初在我的配置脚本中(在创建our-node-app.service
文件之后)我将拥有以下内容:
如果我将其添加回我的配置脚本然后运行,vagrant provision --provision-with shell
我将得到以下输出:
这是我发现systemctl
命令不可用的问题的地方。
我还尝试修改配置脚本,而不是...
...我会用...
这是因为我在某个地方读到了 Ubuntu 不支持的内容systemd
,而是使用了一些名为upstart
来启动其所有服务的东西。我当时假设我可以只使用另一个命令并保持脚本本身相同(似乎不是这种情况)。
但所做的所有更改都表明我的服务没有得到认可:
然后我发现Ubuntu 终究会转向这种systemd
格式:但这是在 2014 年 2 月宣布的,所以我本以为最新的 Ubuntu 现在已经切换了(或者只是我是个白痴而不欣赏这样的改变需要多长时间)。
认为我必须使用这种 Upstart 格式,我已经开始阅读这个,但遗憾的是我无法弄清楚如何将我的systemd
脚本转换为 Upstart 的格式。
这给我留下了一个问题:这里有没有其他人遇到过这个问题,如果有,他们是如何解决的(您是否切换到支持systemd
或重写您的服务以使用 Upstart 格式的不同 Ubuntu 版本)?
您对如何将systemd
脚本转换为 Upstart 格式有任何建议(或好的资源)吗?
对此主题的任何帮助将不胜感激;正如我在开始时提到的,我不是系统/服务器操作人员,所以我在这里做准备。
谢谢。
更新
我发现了这一点,似乎我误解了 和 之间的systemd
区别。一个基于和改进的全新系统也是如此。init.d
upstart
systemd
init.d
upstart
链接到的文章解释了如何安装systemd
,upstart
然后切换到systemd
,但我在尝试安装 VM 时仍然遇到错误?
我已经更新了我的回购代码。
python - Python 守护进程状态未知
我已经通过教程创建了一个 python 守护程序,它的运行就像教程示例一样。但是也有问题:
的输出service --status-all
说:
[ ? ] 测试守护进程
谁能帮我找出这些错误和警告是什么或修复我的守护进程的状态,以便它是这样的:
[ + ] 测试守护进程
xcode - MacOSX lanch 守护进程
我正在我的系统中创建一个虚拟文件夹,该文件夹需要保留,直到用户手动删除它。由于它是一个虚拟文件夹,因此一旦系统关闭或重新启动,它就会自动删除。
所以,为了坚持它,我试图从系统启动期间运行的 daemon/launchAgent 运行它。为此,我只是分离了刚刚创建虚拟文件夹的代码,使用命令行工具模板将其作为单独的 Xcode 应用程序,并将其 unix 可执行文件添加到 LaunchAgents/LaunchDaemons 以使其在每次系统重新启动时运行。
在我的情况下,虚拟文件夹的创建实际上需要保留该过程,这是使用 getchar() 函数完成的。当我通过 Xcode 构建它时,该过程在 getchar() 处停止,并且虚拟文件夹被正确创建。现在我获取了它的可执行文件(unix 可执行文件),双击它以从 Xcode 中运行它,即使该进程在所需的点停止并正常运行。现在,当我尝试从启动守护进程/启动代理运行它时,该进程似乎并没有在任何地方停止,它一直运行到最后,最后我看不到我的结果,即创建虚拟文件夹。如何解决?
在此先感谢并期待任何建议。
c++ - c ++在fork之后初始化全局对象
我有一个使用工作队列执行任务的程序,并且应该作为守护进程运行。我一直在使用以下代码实现这一点:
这将关闭原始进程并启动另一个进程。但是,这导致了我为执行任务而创建的线程在分叉后没有再次出现的问题。我的工作队列是全局实例化的,所有其他值和内存地址都正确复制到子节点,但线程没有。
作为参考,这里是池类:
池.h:
池.cpp:
那么我该如何解决呢?