我需要将使用 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