问题标签 [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.
android - 如何使用 init.d 脚本在启动时启用 android 系绳
我在通过 init.d 启动时运行防火墙规则时遇到问题我当前的语法是
21系绳
iptables -t nat -A natctrl_nat_POSTROUTING -s 192.168.0.0/16 -o rmnet0 -j MASQUERADE
从终端启用可以正常工作:S,在此先感谢您的帮助
perl - 是否有任何理由必须用 bash 编写 System V 初始化脚本?
是否可以在 Perl 中编写 System V 初始化脚本(通常存储在 中/etc/init.d
并运行的脚本service
),并让 shell 识别#!/usr/bin/perl
?这样做会有什么坏处吗?
node.js - 从 init.d 启动时 node.js express-load 不起作用
我的 node.js 应用程序有以下内容app.js
。当我直接运行它时,node app.js
一切正常。当我从 init.d 运行它时,没有load
加载 express-load 中的任何项目。我在所有控制器和配置文件中添加了一个简单的 console.log 行,但没有记录。
难道我做错了什么?
bash - Bash 脚本 - 编写 init.d 脚本
我使用 /etc/init.d/httpd 作为 init.d 脚本的模板。我了解文件中发生的所有内容,但以下行除外:
有人可以解释为什么 HTTPD_LANG(设置为“C”)应该在守护程序函数之前存在吗?谢谢。
mongodb - Mongodb Debian 6.0 无法初始化
我真的需要一些帮助...我一直在尝试按照 mongodb 站点(链接)中的说明在 Debian 6 上安装 Mongodb 。尝试开始使用 init.d 脚本时,我总是遇到一个奇怪的错误。在 Google 中搜索一小时后,我发现 mongodb 的 Debian 初始化脚本似乎存在问题,但我还没有找到解决方法。
非常感谢!!
这是我在安装时遇到的错误:
调用 rc.d:initscript mongodb,操作“开始”失败。dpkg: error processing mongodb-10gen (--configure): subprocess installed post-installation script返回错误退出状态1配置为不写apport报告处理时遇到错误:mongodb-10gen E: Sub-process /usr/bin/dpkg返回错误代码 (1)
java - 复制 Linux liveUSB 导致 init.d 脚本出错
整体问题
当我通过 /etc/init.d/ 安装我编写的在后台启动时运行的简单 Java 应用程序时,它可以在我明确安装它的 liveUSB 上运行。当我复制那个棒时,它永远不会成功启动。启动 liveUSB 副本时,当 liveUSB 启动过程到达我的脚本时,Java 应用程序将始终挂起。我的脚本,它确实按照它应该做的,甚至每 5 分钟一次,并且会一直运行下去,直到你关闭机器。
- 我的脚本阻止了其他一切
- 除了我的脚本之外什么都没有加载
- 你不能取消我的剧本
- 没有图形用户界面
- 您可以看到的唯一文本是我的脚本的命令行输出
设置和测试- 一切顺利 :)
我有一个带有 3 个分区的 Linux liveUSB。加载了简单的标准 Xubuntu 图像。
- sda1 > 2gb 存储
- sda2 > 2gb 系统
- sda3 > casper 的剩余 gb
我创建了一个简单的 Java 应用程序,它在启动时在后台运行。为了做到这一点,我遵循了以下步骤:
- 将java应用程序编译成类
- 将类文件放在 /home/user/folder/
- 将我的 startup.sh 脚本复制到 /etc/init.d/
- 在 /etc/init.d/ 里面
- 输入“update-rc.d startup.sh start 20 2 5 .stop 20 0 1 6”。
- 这成功更新了运行级别
- 现在我可以重新启动/重新启动/关闭任何操作,一切运行完美!
副本- 这就是它变得棘手的地方!
创建此棒的副本时,我遵循以下步骤:
- 挂载 sda2
- 将该文件夹中的所有内容复制到 /home/user/Desktop/tmp-system/
- 挂载 sda3
- 将该文件夹中的所有内容复制到 /home/user/Desktop/tmp-casper/
- 进入 /home/user/Desktop/tmp-system/
- 键入“tar -cvf system.tar”。
- 进入 /home/user/Desktop/tmp-casper/
- 键入“tar -cvf casper.tar”。
- 卸载
- sda2
- sda3
- 插入空 USB(例如 sdb)
- 设置分区(与您从中复制的记忆棒相同)
- 解压到分区
- tar -xvf system.tar ... 进入 sdb2
- tar -xvf casper.tar ... 进入 sdb3
测试- 一切都出错了!
- 将新创建的 liveUSB 插入计算机
- 从 USB 启动
- 一切都开始正常启动
- 我编写的 Java 应用程序被触发
- 引导过程永远挂起
- 没有可用的 cmd 提示符
- 没有可用的图形用户界面
- 就好像线程正在运行(确实如此!可以每 5 分钟查看一次输出 - 这正是它应该的方式)
解决方案尝试和陷阱
1
我可以挂载复制的 liveUSB 编辑 startup.sh 以不启动我的 Java 应用程序,它仍然无法启动(正如我所怀疑的那样?)。
2
如果我使用“dd if=sda of=sdb”,liveUSB 的副本将完全正常工作。然而,这不是一个可接受的解决方案。如果我要使用 dd 将 16gb 的记忆棒复制到 64gb 的记忆棒,那会将 64gb 记忆棒变成 16gb。
3
测试了 startup.sh 和 Java 应用程序本身的许多变体。所有这些都会产生相同的错误。
4
我用来复制的方法适用于所有其他形式的应用程序、文件或其他任何东西。
5
我还想尽量避免使用任何额外的库或程序来帮助运行 Java 应用程序。
linux - 流浪虚拟机中的 init.d 问题
我写了以下内容:
到/etc/init.d/bootForever
我sudo chmod 755 /etc/init.d/bootForever
跟着跑了sudo update-rc.d bootForever defaults
,退出了虚拟机并跑了vagrant reload
。没有喜悦。
SSH 回到虚拟机并直接在命令行中运行 `/etc/init.d/bootForever',这达到了我想要的效果。
为什么此脚本在 VM 启动期间不起作用,但在启动后就可以工作?是时间问题吗?我可以确保脚本在最后运行吗?
虚拟机规格:http://files.vagrantup.com/precise64.box
linux - httpd 的 pid 文件只包含一个 ID,即使它产生了很多
我想在一个 CentOS 机器上运行多个 httpd 服务,这样如果我正在开发一个 mod_perl 脚本并且需要重新启动其中一个,其他的就可以独立运行。我在 Windows 上进行了此设置并正在迁移。
当然,这意味着单独的 PID 文件。我使用 httpd.conf 中的 PidFile 指令配置我的,并将 init.d 脚本指向同一个地方。它可以创建文件,但不会使用所有 PID 填充它:
……为什么会这样?当以后有其他 httpds 时,很难杀死我的 dev httpd procs。不能永远使用'killall'......
我应该注意到没有killproc
安装 CentOS 6.4 minimum,所以我将我的 init.d 更改为使用
反而。我猜 killproc 会搜索出子 PID 吗?所以我必须安装python来安装killproc只是为了使用httpd的init脚本?
linux - Linux 使用 /etc/init.d/ 中的脚本自动启动
每次启动带有 raspbian OS 的树莓派时,我在启动编写的 C++ 应用程序时都会遇到一些麻烦。我找到了以下说明:
http://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html
所以我遵循了所有提到的步骤:
- 在 /etc/init.d/myScript 中创建了我的脚本(通过复制和修改现有脚本)
- 输入我的 C++ 程序的路径:
案例“$1”在
开始)echo "正在启动我的程序..."
/home/pi/myProgram ;;
注意:实际上这个文件的格式很好,我没有收到解析错误!但是,如果我想开始我自己的服务
我收到以下消息:
在我看来,我的 C++ 程序找不到?我应该怎么办?
linux - 如何让我的 init.d 脚本更改用户
我有这个脚本,我想在启动守护程序之前切换到用户“terraria”。我不知道该怎么做。我的研究使我使用 bash 脚本su my_user -c
,但我认为这在这种情况下不起作用。