启动后如何运行脚本 500 万?

bob*_*nte 8 boot cron ruby init

我的网络服务器上运行着多个 RoR 网站,我需要在启动时运行 ruby​​ 脚本。

因此,我在 /etc/init.d 中放置了一个 bash 脚本,调用 ruby​​ 进程。不幸的是,ruby 进程需要一些尚未加载的东西。

我试图sleep 300在我的 bash 脚本的开头添加一个,但这并没有真正的帮助,因为它还会影响 ssh、apache 等东西的启动......

另外,我不想在启动时加载所有 ruby​​ 库,因为它会减慢启动时间。

Tam*_*man 10

sleep 300 是要走的路,但你需要把它放在一个你会调用异步的函数中:

myscript()
{
    sleep 300

    # do what you want
}

myscript &

# continue with other things
Run Code Online (Sandbox Code Playgroud)


Emi*_*röm 6

睡五分钟是一个非常不稳定的黑客。如果启动链中的某些东西需要很长时间才能启动,该怎么办?为什么您希望系统的启动时间超过所需时间?

正确的做法是让你的启动脚本它所依赖的东西之后运行。你如何做到这一点在发行版之间有所不同。

在 Debian 中,您在脚本标题中指定您的脚本具有哪些依赖项:。这是/etc/init.d/READMEDebian Wheezy 中的一个示例:

# Required-Start:    $remote_fs $syslog
Run Code Online (Sandbox Code Playgroud)

在其他系统上,您通常在文件/etc/rc?.d/夹之一的文件名中的某处用数字命名脚本。在这样的发行版上,只需给它一个比它所依赖的东西更高的数字。