+++ /dev/null
-//#! /usr/bin/java --source 17 @/etc/freed/init/jvm.args
-
-import java.lang.management.ManagementFactory;
-import java.util.TreeMap;
-
-import org.argeo.init.Service;
-
-import jdk.jshell.tool.JavaShellToolBuilder;
-import sun.misc.Signal;
-
-class FreedInit {
- public static void main(String... args) {
- final long pid = ProcessHandle.current().pid();
- System.out.println("FREEd Init daemon starting with pid " + pid + "...");
-// System.out.println(System.getProperty("user.dir"));
-// System.out.println(System.getProperty("user.name"));
-// System.out.println(System.getProperty("user.home"));
-
- // System.setProperty("user.dir", "/tmp");
- for (Object key : new TreeMap<>(System.getProperties()).keySet()) {
- System.out.println(key + "=" + System.getProperty(key.toString()));
- }
-
- System.out.flush();
-
- Signal.handle(new Signal("TERM"), (signal) -> {
- System.out.println("SIGTERM caught");
- System.exit(0);
- });
- Signal.handle(new Signal("INT"), (signal) -> {
- System.out.println("SIGINT caught");
- System.exit(0);
- });
- Signal.handle(new Signal("HUP"), (signal) -> {
- System.out.println("SIGHUP caught");
- System.exit(0);
- });
-
- if (args.length > 0 && ("1".equals(args[0]) //
- || "single".equals(args[0]) //
- || "emergency".equals(args[0]))) {
- // TODO check if we can remove dependency to management
- String classpath = ManagementFactory.getRuntimeMXBean().getClassPath();
- String feedbackMode = "concise";
- // TODO --startup script
- JavaShellToolBuilder builder = JavaShellToolBuilder.builder();
- try {
- builder.start("--execution", "direct", "--class-path", classpath, "--feedback", feedbackMode);
- } catch (Exception e) {
- e.printStackTrace();
- System.err.flush();
- System.exit(1);
- return;
- }
-
- } else {
- Service.main(args);
- }
- }
-}