如何在没有 ruby​​ 的情况下列出 init.d 脚本的文件

发布于 2024-09-06 14:22:26 字数 791 浏览 2 评论 0原文

我需要将使用 ruby​​ 的 init.d 脚本转换为不使用 ruby​​。我可以使用 perl 或 python 或其他东西,但我不能使用 ruby​​。我的主要问题是弄清楚如何动态获取目录中的 *.jar 文件列表并用“:”分隔它们。其余的我可以使用 bash 脚本轻松完成。

这是我正在使用的 Ruby 代码:

#!/usr/local/bin/ruby

require 'fileutils'

HOME = '/usr/local/myproject'
JAVA_HOME = '/usr/java/jdk'
JARS = Dir.glob(File.join(HOME, 'lib', '*.jar')).join(':')
PID_FILE = '/var/run/myproject.pid'
OUT_FILE = File.join(HOME, "stdout")
ERR_FILE = File.join(HOME, "stderr")

case ARGV.first
when 'start'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -DHOME=#{HOME} -user me -outfile #{OUT_FILE} -errfile #{ERR_FILE} mypackage.MyProject"
when 'stop'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -stop mypackage.MyProject"
end

I need to convert a init.d script that uses ruby to not use ruby. I can use perl or python or something else, but I can't use ruby. My main problem is figuring out how to dynamically get the list of *.jar files in a directory and separate them with ':'. The rest I could easily do with a bash script.

Here is the Ruby code I'm working with:

#!/usr/local/bin/ruby

require 'fileutils'

HOME = '/usr/local/myproject'
JAVA_HOME = '/usr/java/jdk'
JARS = Dir.glob(File.join(HOME, 'lib', '*.jar')).join(':')
PID_FILE = '/var/run/myproject.pid'
OUT_FILE = File.join(HOME, "stdout")
ERR_FILE = File.join(HOME, "stderr")

case ARGV.first
when 'start'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -DHOME=#{HOME} -user me -outfile #{OUT_FILE} -errfile #{ERR_FILE} mypackage.MyProject"
when 'stop'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -stop mypackage.MyProject"
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一片旧的回忆 2024-09-13 14:22:26

这应该可以完成这项工作:

JARS=`ls $HOME/lib/*.jar | tr '\n' ':'`

This should do the job:

JARS=`ls $HOME/lib/*.jar | tr '\n' ':'`
陌伤ぢ 2024-09-13 14:22:26

我的主要问题是弄清楚如何动态获取目录中的 *.jar 文件列表并用“:”分隔它们

对于 Perl 解决方案,请查看 glob 返回文件列表的函数。

my $HOME = '/usr/local/myproject';

my $JARS = join ':', glob( $HOME . '/lib/*.jar' );

/I3az/

My main problem is figuring out how to dynamically get the list of *.jar files in a directory and separate them with ':'

For Perl solution then take a look at the glob function which returns a list of files.

my $HOME = '/usr/local/myproject';

my $JARS = join ':', glob( $HOME . '/lib/*.jar' );

/I3az/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文