Articles of init

哪个init系统在特定系统上是主要的?

对于dpkg -L application显示,我已经安装了几个init脚本的dpkg -L application 。 例如: /etc/init/application.conf /etc/init.d/application /usr/systemd/applaication.service 但我只使用service application start启动? 如何确定哪个脚本应该用于启动应用程序? 据我所知在Ubuntu 12.04默认使用新贵,所以它是/etc/init/application.conf脚本,但是当我做update-rc.d它创build/etc/rc*.d目录符号链接到/etc/init.d/application所以它使用SysV初始化脚本,而不是新贵,而新贵是在Ubuntu默认的初始化。 我很困惑。

云启动可以强制每次启动检索元数据和用户数据?

我的理解是,cloud-init工作的预期方式是每个实例检索一次元数据和userdata。 这可以改变,以便cloud-init在每次启动时检索数据? 我注意到删除目录/ var / lib / cloud / instances / 12345678-1234-5678-1234-567812345678 /会强制执行新的检索,但是这也会运行节点的其他初始化。 我想例如更改我的实例ntp-server ip,似乎cloud-init无法做到这一点。 我错过了什么?

'systemctl restart service'在CentOS 7上无法正常工作

我在/etc/init.d中有一个由init脚本pipe理的自定义服务,在升级到CentOS 7之后,在systemd中,“systemctl restart service”无法正常工作。 我需要执行两次'systemctl restart service'使其重新启动(第一次只停止它,停止后不启动它)。 我不知道到底发生了什么事,但是如果我使用'/etc/init.d/service stop'来停止这个服务,这个进程将被终止,并且不会显示在'ps aux'中,但是'systemctl status service'表示它是“活性”。 这是/etc/init.d中的init脚本: #!/bin/bash # # Startup script for the service # chkconfig: 2345 80 20 # description: a service PID_FILE=/var/run/pidfile.pid LOG_FILE=/var/log/serviceslogs #Necessary environment variables export JAVA_HOME="/usr/java/latest" #export JAVA_HOME="/root/java-8-oracle" if test \! -d "${JAVA_HOME}"; then echo "$0: the JAVA_HOME exported value is not defined correctly" […]

init永远不会收获僵尸/已经停止的进程

在内核2.6.18.8的Fedora Core 9networking服务器上,init不会收获僵尸进程。 如果最终没有为进程expression到无法分配新进程的上限,这将是可承受的。 ps -el | grep 'Z'示例输出 ps -el | grep 'Z' : FS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 5 Z 0 2648 1 0 75 0 – 0 exit ? 00:00:00 sendmail <defunct> 1 Z 51 2656 1 0 75 0 – 0 exit ? […]

如何在Red Hat / Fedora Core中安装root aufs?

我试图build立一个运行Red Hat EL(实际上是Scientific Linux,但是相同的区别)的根文件系统受保护而不可写的虚拟机。 我想用一个使用aufs的联合装载来完成这个任务。 也就是说,一个可写文件系统(位于不同的虚拟HDD上)覆盖在根文件系统上。 在这个地方有一个HOWTO吗? 我已经安装了aufs模块,并且我已经能够挂载一个联合文件系统,但诀窍是为根文件系统做这个。 我已经看到了initramfs脚本help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash编写的Debian / Ubuntu风格的发行版,在/ init脚本中做这样的事情:在真正的根挂载之前,受保护的根挂载在某处只有覆盖的文件系统以读写的方式安装在别处,联合文件系统被创build和挂载,然后联合安装成为真正的根。 因此,原始的受保护的根文件系统永远不会被挂载为读写。 我想知道如何在Red Hat发行版的nash / init脚本中执行此操作。 甚至更具体的问题: nash命令“setuproot”和“switchroot”究竟做了什么? nash(8)的手册页文件switchroot有一个单一的参数,但我的/ init脚本没有任何参数调用它。 (动机:虚拟机将受到软件故障注入;我想保护根文件系统免受故障系统的影响,以便能够快速地将VM重新引导到非故障状态。) 谢谢!! PS是的,我可以下载一些LiveCD,看看它是如何完成的,但我想有人应该写一个HOWTO,我的谷歌search技能还没有发现。

从当前RedHat会话启动的initrd映像中查找

假设在/etc/grub.conf中有多个相同的内核但不同的initrd-*.img文件,我怎么才能知道/boot/ RedHat系统是从哪个initrd镜像/boot/ ? ( dmesg不显示它,并且从/initrd没有链接。)

我可以使用Upstart启动需要用户X会话的脚本吗?

我写了一个脚本,通过滑动synclient的输出来确定一台笔记本电脑的触摸板是否奇迹般地自行closures(Ubuntu似乎最近/最近这样做),如果是这样,就把它重新打开。 脚本是这样的: #!/bin/bash while true ; do if [ `synclient | grep -e"TouchpadOff[\s]*1" | wc -l` -ge 1 ] ; then synclient TouchpadOff=0 fi sleep(3) done (我现在没有笔记本电脑,但是你明白了!当我在我的笔记本电脑上时,我会稍后更新,如果这是不正确的) 所以我尝试运行这个作为一个暴发户脚本,所以我的触摸板可以愈合自己没有任何交互。 但似乎synclient没有find当前用户的X会话,当我的脚本启动。 我尝试在我的脚本节中使用su -c myscript.sh ledneb类的东西来运行它,但无济于事。 我应该在/ etc / X11 / xinit / xinitrc而不是新贵的方向看吗? 有没有一个正确的方法让这个脚本运行在当前(甚至硬编码)用户的x会话的上下文中?

奇怪的初始化脚本与corosync问题

这可能有一个简单的解释,但我当然想不起来。 我已经安装了corosync(通过yum),它是默认的init脚本。 在这个特殊的CentOS安装中有些奇怪,因为我经常需要手动链接/etc/rc.d/init.d/到/etc/init.d。 问题是通过它的符号链接运行失败,但它通过/etc/rc.d/init.d运行良好 更奇怪的是,如果使用完整path运行,并且仅在实际运行在/etc/rc.d/init.d目录下,则运行失败。 例: [~]# /etc/rc.d/init.d/corosync start Starting Corosync Cluster Engine (corosync): [FAILED] [~]# service corosync status corosync is stopped [~]# cd /etc/rc.d/init.d/ [init.d]# /etc/rc.d/init.d/corosync start Starting Corosync Cluster Engine (corosync): [FAILED] [init.d]# corosync start [init.d]# service corosync status corosync (pid 1985) is running… 任何解释? 编辑: 不知道我改变了什么,但现在从/rc.d/init.d开始工作,但是没有启动service corosync。 [root@server2 mirror]# /etc/rc.d/init.d/corosync start Starting […]

init是脚本的父级:我怎么才能find最初启动的脚本?

有问题的盒子是RHEL / CentOS 5.5 x86_64。 已经有80多天了。 一个自定义的看门狗脚本存在于执行各种任务的服务器上,这个脚本接受一些参数。 当我的一个用户在箱子上运行带有适当参数的脚本时,它执行它应该做的事情。 然而,我们发现有时候我们会发现一个这样的盒子,脚本在自动运行和不同的参数下运行。 问题是:基于ps和其他研究,我发现今天凌晨4:02开始。 进程的PID在8000范围内,父进程是1或init。 由于该框没有重新启动,我怎么能找出什么叫这个脚本,为什么init是它的父?

从boot / init中删除ulimit

在从版本6的CentOs中,每个用户都有默认的进程限制1024,例如/etc/security/limits.d/90-nproc.conf * soft nproc 1024 我必须执行后端服务/守护进程“myservice”,这需要在进程限制中有更大的值。 所以我必须覆盖预先configuration的限制(1024)。 为此,我尝试为root和myuser(运行myservice的用户)创build单独的条目。 myuser soft nproc 5000 root soft nproc 5000 接着 service myservice restart 现在限制增加了,似乎这个问题已经解决了! 但它是暂时的,系统重新启动后,限制再次到1024.( 注: myservice被configuration为在启动时启动) 这似乎是由于init进程负责启动系统上的每个服务,因此“myserivce”作为subprocessinheritance了父进程的限制(init默认有1024个限制)。 我search了一下,发现是否有办法增加init的限制,但没有足够的幸运find任何! 我试图改变/ etc / security / limits.d / 90-nproc.conf * soft nproc 5000 但仍然相同,重新启动后,init仍然有1024个限制,myservice也有1024个限制 注:如果我从shell提示符重新启动myservice,那么它会得到接受的限制(5000),但我想每次重新启动后自动启动它。 有人可以指导我,我可以如何增加“myservice”的进程限制,并重新启动后保存它?