public void start()

in priam/src/main/java/com/netflix/priam/defaultimpl/CassandraProcessManager.java [71:114]


    public void start(boolean join_ring) throws IOException {
        logger.info("Starting cassandra server ....Join ring={}", join_ring);
        instanceState.markLastAttemptedStartTime();
        instanceState.setShouldCassandraBeAlive(true);

        List<String> command = Lists.newArrayList();

        if (config.useSudo()) {
            logger.info("Configured to use sudo to start C*");
            if (!"root".equals(System.getProperty("user.name"))) {
                command.add(SUDO_STRING);
                command.add("-n");
                command.add("-E");
            }
        }
        command.addAll(getStartCommand());

        ProcessBuilder startCass = new ProcessBuilder(command);

        Map<String, String> env = startCass.environment();
        setEnv(env);
        env.put("cassandra.join_ring", join_ring ? "true" : "false");

        startCass.directory(new File("/"));
        startCass.redirectErrorStream(true);
        logger.info("Start cmd: {}", startCass.command());
        logger.info("Start env: {}", startCass.environment());

        Process starter = startCass.start();

        logger.info("Starting cassandra server ....");
        try {
            int code = starter.waitFor();
            if (code == 0) {
                logger.info("Cassandra server has been started");
                instanceState.setCassandraProcessAlive(true);
                this.cassMonitorMetrics.incCassStart();
            } else logger.error("Unable to start cassandra server. Error code: {}", code);

            logProcessOutput(starter);
        } catch (Exception e) {
            logger.warn("Starting Cassandra has an error", e);
        }
    }