是否可以使用 perl、python、php、ruby 或其他任何东西来编写 init.d 脚本?

Loc*_*ead 7 linux unix init.d

我是 SysOp 的新手,所以我想知道是否可以使用其他解释语言来编写 init.d 脚本?

我的前期差异是 /bin 与 /usr/bin

#!/bin/sh
Run Code Online (Sandbox Code Playgroud)

相对

#!/usr/bin/perl
#!/usr/bin/php
#!/usr/bin/python
#!/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

我还缺少其他任何要点吗?

Bri*_*les 9

是的。存在可用性、速度、可靠性、可维护性等问题,但 init 脚本可以用任何你想要的方式编写。

正如您的问题所暗示的那样,必须先挂载 /usr 文件系统,然后才能使用驻留在其上的解释器。

有 Perl 模块仅用于此任务。一个例子是Daemon::Control,还有更多 Perl 和其他语言的例子。

  • 在这种情况下,我不能夸大“可用性”的重要性。我们用 perl 编写我们的 init 脚本,我们在初始化时遇到了各种有趣的竞争条件:当然,解释器是可用的,但是 perl 的 site_lib 呢?它所依赖的第三方库(expat、zlib 之类的)呢?依赖树很快变得非常重要。如果你要走这条路,我的建议是非常谨慎,只使用解释器的核心捆绑功能。 (2认同)