启动后,如何运行脚本 5mn?

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

web站点上正在运行 severals RoR网站,我需要在启动时运行 ruby 脚本。

我在/etc/init.d 女巫调用 ruby 进程时调用了bash脚本。 Unfortunatly,ruby 进程需要一些尚未加载的内容。

我试图在bash脚本开头添加一个 sleep 300,但它并不真正帮助,因为它也影响了 ssh。apache。等等的启动。

另外,我不希望在启动时加载所有 ruby 库,因为它会降低启动时间。


回答 1:

sleep 300 是走向的方式,但你需要将它放入一个函数,你将调用 asynchroneous:


myscript()


{


 sleep 300



 # do what you want


}



myscript &



# continue with other things




回答 2:

睡眠五分钟是一个非常不稳定的hack。 如果启动链后面的东西花费了unusal很长时间来启动? 为什么你希望系统花费的时间比引导所需的时间长?

正确的方法是让你的启动脚本在运行后运行,它依赖于。 如何在发行版之间实现这一点。

在Debian中,你可以在脚本标题中指定脚本的依赖关系:。 下面是 Debian Wheezy中 /etc/init.d/README的一个例子:


# Required-Start: $remote_fs $syslog



在其他系统上,通常使用一个名称在一个文件夹中的某个地方的某个位置上使用一个数字。 对这些发行版,只要给它一个比它所依赖的更高的数字。


回答 3:

我想知道你是否可以启动另一个线程,线程做的第一件事就是睡眠 300. 然后它会调用你从 init.d 调用的脚本

我觉得这应该是

 
newscript &



 

回答 4:

创建 file: delay


#!/bin/bash


# $1:delay time(s)


# $2:command


# example:


# delay 10"conky -d"



sleep $1


exec $2



然后


chmod a+x delay


delay 10"xxx"



把它放在 /etc/rc.local



STA  启动  
相关文章