问题标签 [init.d]

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 投票
1 回答
300 浏览

ruby-on-rails - rake 任务说“在您的环境中定义 INLINEDIR 或 HOME 并重试,我该如何解决这个问题?

我在 rails 2 中运行 rake 任务,我从/etc/init.d/ruby​​ 脚本中调用了它。

启动时它告诉我 define INLINEDIR or HOME in your environment and try again 登录后它工作正常,但如果我unset home先运行就不行

不管我尝试称它为什么任务都没有关系,无论如何。

虽然我可以HOME在该文件中定义,但我不知道是什么INLINEDIR以及我是否应该这样做,或者为什么这首先很重要。有没有人遇到过这个问题,了解更多并可以指出我的正确方向?

0 投票
1 回答
3141 浏览

linux - 调用'/etc/init.d/daemon stop'时杀死进程之前bash init.d脚本中的宽限期

我正在为我的一个公司应用程序修改 init.d 脚本。显然我的 bash 脚本 foo 不够强大。

一旦 Launcher 看到 Dispatcher 已终止,它将退出。香草脚本总是[ FAILED ]在停止应用程序时显示,因为启动器在此脚本试图杀死它之前已经终止。

我尝试添加 2 秒的宽限期(充足),以便启动器终止,然后再尝试杀死它(如果它仍在运行)。

我有以下 stop() 函数:

当我停止程序时,它不再显示“正在关闭启动器:...”行。

支持功能:

回声线中 $ 的相关性是什么?

如果我在调试行中添加:

我得到:

那里有任何 bash 脚本专家吗?

0 投票
1 回答
1887 浏览

bash - 构建 SysV 或 Upstart 兼容的 Bash 脚本的注意事项

我刚刚编写了一个快速脚本,用于使用 rsync 使从属 Web 服务器与主服务器保持同步。(https://github.com/simonjgreen/liveFolderSync/blob/master/liveFolderSync.sh)

我想让它在启动时运行并且可以通过通常的 /etc/init.d/... 或服务命令进行控制,但是这是我一直陷入的领域。我找到了两个 init.d 脚本和新贵的脚本非常混乱,并且在任何地方都找不到从头开始的指南。

我想对其进行的唯一控制是启动/停止/重新启动。显然稍后我会将配置移动到 /etc 中的单独文件中,但这已经在卡片上,因此超出了这个问题的范围。

任何指针/建议和最佳实践都会有所帮助。我应该补充一点,我正在 Ubuntu 上执行此操作。

0 投票
1 回答
1590 浏览

linux - linux: determining if a running init.d script is executed as part of the system startup sequence

I am writing a init.d script that should run commands with certain options if it were being executed at system startup. The same script should run commands with other options if the user was manually executing the script.

For example, in a networking script, if it was being run at the system start up, then certain network interface would not be brought up depending on whether they should be configured ONBOOT. Otherwise, if the user was manually running the networking script (service network start), then all network interfaces would be brought up.

One way i can achieve this is to create a file say "/tmp/.boot" from the parent rc script, which is deleted after all startup scripts are executed. And then in the init script check of the existence of the file /tmp/.boot to determine if the script is being run as part of the startup sequence or not.

I was wondering if there is any existing way of knowing that the system is in its boot up sequence. Could something in /proc/ or elsewhere tell me that the system is in its boot sequence?

Looking forward to your suggestions.

Thanks and Regards ~Sameer

0 投票
1 回答
1865 浏览

ubuntu - 启动脚本中可用的环境变量

在 Linux / Ubuntu 上使用启动脚本时,我可以访问诸如 HOME 之类的环境变量,还是这些特定于之后加载的用户/配置?

0 投票
2 回答
2998 浏览

daemon - 从自定义 init.d 脚本输出标准 OK / FAILED 消息

关于我正在编写的初始化脚本,我有几个问题。我以前实际上没有从头开始做,所以可能有几个我不知道的技巧和窍门。此外,shell 脚本不是我经常使用的东西,因此语法需要一些时间来适应。

首先,我有一个功能来查看应用程序是否正在运行。这样做的原因,而不是锁文件或类似的,是我只想要一个实例并且应用程序有点错误,即使主应用程序被杀死,插件有时也会徘徊。

所以我有类似的东西。

有没有更好的办法?

我启动主应用程序

但这将脚本执行挂在该行上,直到FooBar终止。

虽然有效。但是看起来运行init脚本时显示的[OK] / [FAILED]实际上是由daemon函数输出的?所以即使执行失败,由于FooBar的进程被分离, daemon仍然会报告[OK] 。

有没有办法让守护进程在不分离进程的情况下不会卡住?我已经尝试过-d选项等,但没有运气。

否则我只想做一个sleep 3然后检查isrunning工作正常。但是后来我不知道如何以初始化脚本通常所做的漂亮方式打印[OK ] / [FAILED]消息。也许有一种功能可以用来以标准形式打印它?

更新

我找到了打印消息的解决方案。看来它实际上是为此的功能。 成功失败将打印消息。

守护进程问题仍然存在。有什么办法摆脱&

更新 2

我找到了解决方法并使用了

并检查应用程序是否在此之后运行。根据结果​​,我打印正确的消息。

0 投票
1 回答
678 浏览

ruby - 上帝不会注册正在运行的自定义服务

我有一个 Rails 网站和一个在 linode vps 上运行的小型 minecraft 服务器。我将 minecraft 作为基于 init.d 文件的 ram 服务器的自定义服务运行。由于我使用上帝来监控我的 Rails 网站,我想我也会将它用于我的世界,但它似乎无法以任何方式识别该服务。条件不会检测到它的存在。:process_running 总是返回 false,无论它是否正在运行,并且在没有运行时无法启动它。更令人困惑的是 :memory_usage 和 :cpu_usage 始终为零。

我的 /etc/init.d/minecraft 文件在这里: http: //pastie.org/2760483

它运行得非常好,“服务 minecraft start”之类的东西给了我几乎所有我需要的东西。我希望能够在 CPU 使用率高的时候通过上帝自动让它进入睡眠状态,以优先考虑网站。然而,没有一个上帝条件弄清楚这个过程发生了什么。

我的 /opt/god/minecraft.god 文件在这里: http ://pastie.org/2760498

显然,低cpu是试图从上帝那里崛起。如果你愿意,要求一击。

试图从配置中运行上帝:sudo god -c minecraft.god -D

产量:

0 投票
1 回答
9118 浏览

nginx - Cent OS 上 nginx 的 Init.d 脚本

我正在使用下面的 init.d 脚本:http ://wiki.nginx.org/RedHatNginxInitScript但这个脚本在我的 CentOS 5.5 nginx 1.0.6(由乘客安装)上很烂。它很烂有两个原因:

  1. 当我运行时service nginx start,它会启动 nginx,但不要自行退出。

  2. 它在一些不同的运行时路径 ($PATH) 中运行,因此 rails 将无法找到位于 /usr/local/bin 内的可执行文件(如 node.js)

有没有适合你们(在 CentOS 或其他基于 Redhat 的发行版上)没有这些问题的 init.d 脚本?

0 投票
4 回答
44560 浏览

linux - 在 /etc/init.d 脚本中调用守护进程被阻塞,不在后台运行

我有一个要守护的 Perl 脚本。基本上,这个 perl 脚本将每 30 秒读取一次目录,读取它找到的文件,然后处理数据。为简单起见,请考虑以下 Perl 脚本(称为 synpipe_server,在 中有此脚本的符号链接/usr/sbin/):

所以这个脚本基本上每 3 秒打印一次。

然后,因为我想守护这个脚本,我也把这个 bash 脚本(也称为 synpipe_server)放在/etc/init.d/

因此,(如果我很好地理解了守护进程的文档)Perl 脚本应该在后台运行,并且/dev/null如果我执行,输出应该被重定向到:

但这是我得到的:

所以它启动 Perl 脚本,但运行它而不将它从当前终端会话中分离出来,我可以看到我的控制台中打印的输出......这并不是我所期望的。此外,PID 文件是空的(或者只有换行符,daemon 没有返回 pid

有谁知道我做错了什么?

编辑:也许我应该说我在 Red Hat 机器上。

谢谢,托尼

0 投票
11 回答
102667 浏览

logging - 如何记录由 start-stop-daemon 启动的进程的标准输出?

我正在使用一个初始化脚本来运行一个简单的进程,该进程以:

名为 $DAEMON 的进程通常将日志信息打印到其标准输出。据我所知,这些数据没有存储在任何地方。

我想将 $DAEMON 的标准输出写入或附加到某个文件中。

我知道的唯一解决方案是告诉 start-stop-daemon 直接调用 shellscript 而不是 $DAEMON;然后脚本调用 $DAEMON 并写入日志文件。但这需要一个额外的脚本,就像修改守护程序本身一样,似乎是解决这种常见任务的错误方法。