summaryrefslogtreecommitdiff
path: root/MPE/druid/bin/service
diff options
context:
space:
mode:
Diffstat (limited to 'MPE/druid/bin/service')
-rw-r--r--MPE/druid/bin/service70
1 files changed, 70 insertions, 0 deletions
diff --git a/MPE/druid/bin/service b/MPE/druid/bin/service
new file mode 100644
index 0000000..372cd14
--- /dev/null
+++ b/MPE/druid/bin/service
@@ -0,0 +1,70 @@
+#!/usr/bin/env perl
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+use strict;
+use warnings;
+
+use Cwd qw/realpath/;
+use Fcntl;
+use File::Basename;
+use FindBin;
+use Getopt::Long qw/:config require_order gnu_compat/;
+
+sub usage
+{
+ die "usage: $0 (--restart <service> | --tail <service> | --down) [-d <var dir>]\n";
+}
+
+# Parse arguments
+my %opt = (
+ 'vardir' => realpath("$FindBin::Bin/../var"),
+);
+
+usage() unless GetOptions(\%opt, 'command=s', 'restart=s', 'down', 'tail=s', 'vardir|d=s');
+
+my $svdir = "$opt{vardir}/sv";
+my $command;
+
+if ($opt{command}) {
+ usage() if $command;
+ $command = $opt{command};
+}
+
+if ($opt{down}) {
+ usage() if $command;
+ $command = 'd';
+}
+
+if ($opt{restart}) {
+ usage() if $command;
+ $command = "k $opt{restart}";
+}
+
+if ($opt{tail}) {
+ usage() if $command;
+ exec "tail", "-f", "$svdir/$opt{tail}.log"
+ or die "exec failed: $!\n";
+}
+
+usage() unless $command;
+
+my $fifofile = "$svdir/.ctrl";
+sysopen my $fifofh, $fifofile, O_WRONLY or die "Can't open control fifo, perhaps supervise is not running: $!\n";
+print $fifofh "$command\n";
+close $fifofh;