Frage

Ich brauche eine init.d-Skript zu konvertieren, dass Anwendungen Rubin nicht Rubin verwenden. Ich kann sonst Perl oder Python oder etwas, aber ich kann nicht verwenden Rubin. Mein Hauptproblem besteht darin, herauszufinden, wie dynamisch die Liste der * .jar-Dateien in einem Verzeichnis erhalten, und trennen Sie sie durch ‚:‘. Der Rest kann ich mit einem Bash-Skript leicht tun.

Dies ist der Ruby-Code Ich arbeite mit:

#!/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
War es hilfreich?

Lösung

Dies sollte die Arbeit machen:

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

Andere Tipps

  

Mein Hauptproblem besteht darin, herauszufinden, wie dynamisch die Liste der * .jar-Dateien in einem Verzeichnis erhalten, und trennen Sie sie durch ‚:‘

Für Perl-Lösung nehmen dann einen Blick auf die glob Funktion, die eine Liste zurückgibt von Dateien.

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

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

/ I3az /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top