Articles of init.d

linux shell脚本的模板/平台到init.d脚本

所以我得到了一些小的cronjobs ,那需要更频繁的运行一分钟。 所以我通常做的是 – 用while loop创buildshell脚本并在其中声明sleep语句。 然后我在screen上运行它。 问题当然是,如果服务器重启,它不会启动,也不像init.d脚本那么灵活。 我查了一些post,但主要是没有那么方便的解决方法,我试图避免这些。 有没有一些平台,或者我可以popup我的while循环,并作为init.d脚本运行它的模板? 或者也许有其他一些方便的解决scheme

Debian 3.1(Sarge)init.d引导顺序

我正在使用Debian 3.1(Sarge)附带的Technologic Systems公司的TS-7800单板计算机 。 我已经更新到挤压,但由于各种驱动程序的问题,我已经被迫回到Sarge。 我试图在开始之前configuration我的应用程序服务所需的各种驱动程序和configuration。 理想情况下,我会调用一个包含驱动程序/configuration的init.d脚本,然后调用其他init.d脚本(每个进程一个)。 我留下了如何保证启动顺序的头脑。 我知道在更高版本的Debian中,我可以使用LSB头来实现这一点; 但是在Sarge有没有什么和LSB头相媲美?

Ubuntu Upstart作业在NFS挂载之前保持tcp_slot_table_entries

注:我知道/ proc / sys / sunrpc / tcp_slot_table_entries的持久性更改问题,虽然这个较旧的问题非常相似,但所选和build议的答案不适用于我们,也不专门针对Upstart。 我们需要一种方法来确保我们的tcp_slot_table_entries修改在重新启动时保持 tcp_slot_table_entries , 并且 在挂载NFS挂载之前执行 。 我们有一个简短的基本脚本,我们用它来testing挂载后的挂载相对性能,当使用OS默认值( 当前默认值是2 )时,平均时间比应用我们的自定义默认值差约400%。 因此,我们进行更改,重新启动系统,运行我们的testing(查看可怕的时间),然后卸载并挂载NFS,重新运行testing并查看改进的时间。 这表明我们确实在重新启动时保持更改,但是在初始安装发生之后发生更改。 除了在相关问题上试图回答,我们已经尝试过: 修改procp.conf upstart作业进行更改请参阅参考文献 添加一个modprope.d conf脚本。 见参考文献 在所有情况下,这将重新启动后重新应用更改,但不会在挂载NFS之前。 最后,我们的pipe理层非常希望我们为这个挑战实施一个纯粹的新贵解决方​​案。 诚然,我是一个暴发户的noob,所以我有一个临时解决scheme,用noauto指令将我们的挂载添加到fstab,然后使用rc.local在初始化完成后挂载它。 我们正在寻找的是一个纯粹的新贵解决方​​案,它不会修改当前/默认的暴发性作业(因为它们可能会在升级时被覆盖)。 那么,这就给我们留下了三个问题: 在fstab自动挂载之前,是否可以合理地实现一个纯粹的新兴工作解决scheme来修改tcp_slot_table_entries? 假设是这样的,你能指点一些材料/链接(比RTFM Upstart文档更具体),这将有助于我们整理实施细节吗? 有没有更好的解决scheme来应对我们没有考虑到的挑战?

需要一个Ruby脚本中的gem启动时失败

我正在使用厨师使用机器启动。 我需要它来安装一个init.d脚本,当脚本在chef运行结束时被调用,脚本在require'守护进程'行(如下所示)上失败。 我在require和require之前和之后有一个打印logging。 # my_invoked_script.rb $stdout.reopen("output.txt") $stderr.reopen("err.txt") pid = fork if pid.nil? puts "Before" require 'daemons' puts "After" … else Process.detach(pid) end 之前的打印logging。 打印后不是。 我想,因为这是在启动时,一些envvariables可能不会设置正确。 有没有人能够在启动时运行ruby脚本的需求? 我的init.d脚本是一个具有启动function的标准脚本,如下所示: start(){ /usr/local/bin/ruby /home/ubuntu/my_invoked_script.rb } login到terminal并运行脚本显示没有错误,事情正常进行。 ruby1.9.2 Ubuntu的11.04虽然我不知道他们中的任何一个是这里的问题。

在CentOS 6.4上configurationOpenLDAP初始化脚本

如果我只是运行slapd没有参数(作为根),它启动并正常工作。 当我尝试使用/etc/init.d/slapd start启动它时,它立即死亡。 从init脚本中可以看到/etc/sysconfig/ldap中有一个configuration文件,但是我一直无法find一个可用的设置组合。 有人知道我需要做什么吗? 我回到默认的初始化脚本,并尝试运行debugging,但我没有看到任何有用的。 主要细节是: daemon –pidfile=/var/run/slapd.pid –check=slapd /usr/sbin/slapd -h '" ldap:///"' -u ldap /bin/bash -c 'ulimit -S -c 0 >/dev/null 2>&1 ; /usr/sbin/slapd -h " ldap:///" -u ldap'`.

Lighttpd初始化脚本在Debian Wheezy上不起作用

[编辑]我发现为什么它不工作,我只是不得不添加指令 server.pid-file = "/var/run/lighttpd.pid" 到lighttpd.conf文件。 我无法弄清楚为什么lighttpd init脚本不能停止服务器。 我正在运行Debian 7 Wheezy和Lighttpd 1.4.31。 我的系统也是最新的。 发行时: # /etc/init.d/lighttpd stop [ ok ] Stopping web server: lighttpd. 但是然后lighttpd仍在运行: # ps aux | grep lighttpd root 2024 0.0 0.2 70696 1184 ? S 15:16 0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf root 2428 0.0 0.1 7832 880 pts/0 S+ 15:27 0:00 grep lighttpd […]

puma init.d for centos 6失败,runuser:user /var/log/puma.log不存在

试图获得一个init.d /美洲狮工作在Centos 6.它会引发错误 runuser: user /var/log/puma.log does not exist 我从/ srv / books / current文件夹运行它,但失败。 我试图debugging的值,但不完全得到什么是缺less的,为什么会抛出这个错误。 #! /bin/sh # puma – this script starts and stops the puma daemon # # chkconfig: – 85 15 # description: Puma # processname: puma # config: /etc/puma.conf # pidfile: /srv/books/current/tmp/pids/puma.pid # Author: Darío Javier Cravero <[email protected]> # # […]

启动脚本中的错误PATH

由于Synology NAS(x86)上的系统更新,我的启动脚本有一些问题。 Bash脚本存储在/usr/local/etc/rc.d 。 脚本是肯定执行的,因为我有一个运行在根上的服务器,它的启动没有任何问题。 但是如果我将其他服务器可执行文件放在“su”命令中,以便与其他用户启动,则其他服务器可执行文件无法正常启动。 在脚本中执行的命令如下: su admin -c /volume1/homes/admin/subsonic/subsonic.sh Bash脚本运行时没有任何问题,但脚本启动java与特定的命令,那里找不到java的path。 su admin -c "screen -dmS ncdc ncdc" 在这一行上,问题是系统找不到screen的path。 如果我没有su启动它,以便它将作为根运行,那么它的工作原理。 UPDATE 如果我用减号开始命令,那么我也会得到这样的行为: root@schreda-NAS:~ # su – admin -c "screen -dmS test test" -bash: screen: command not found path值将由/etc/profile 。 我不覆盖~/.bash_profile的path

我必须添加哪些insserv标签到initrd-tools.sh?

我在我的debian 7服务器上安装了insserv。 当我打电话给我时,我得到了错误 insserv: warning: script 'S19initrd-tools.sh' missing LSB tags and overrides 这意味着,我的init.d脚本中的标签丢失。 现在脚本在调用时不需要任何标签,那么insserv的正确标题是什么呢? 我在这里find了这个: ============================================================================== — trunk/src/insserv/debian/overrides/initrd-tools.sh (added) +++ trunk/src/insserv/debian/overrides/initrd-tools.sh Sun Jul 27 12:19:51 2008 @@ -1,0 +1,7 @@ +### BEGIN INIT INFO +# Provides: initrd-tools +# Required-Start: mountdevsubfs +# Required-Stop: +# Default-Start: S +# Default-Stop: +### END INIT INFO 这是正确的吗?

在具有多个pid的sysvinit上为/ var / lock / subsys命名约定

在这个来自Red Hat的技巧和诀窍文章中 ,有人说: 当通过初始化脚本启动服务时,会在/ var / lock / subsys /目录中使用与init脚本相同的名称来接触文件。 当服务停止时,该文件被删除。 只要文件名与init脚本相同,这个文件的内容对于本文的范围就不重要了。 但是,某些服务可能需要多个锁。 例如, 其中一个GitLab初始化脚本需要一个独angular兽锁和一个sidekiq锁: # The PID and LOCK files used by unicorn and sidekiq UPID=$APP_PATH/tmp/pids/unicorn.pid ULOCK=/var/lock/subsys/unicorn SPID=$APP_PATH/tmp/pids/sidekiq.pid SLOCK=/var/lock/subsys/sidekiq 如果开发者使用/var/lock/subsys/gitlab-unicorn和/var/lock/subsys/gitlab-sidekiq吗? 或者可能是一个目录/var/lock/subsys/gitlab/ ? 可以通过某种方式避免这个问题使用一个单一的locking文件? 这种情况的最佳做法是什么?