package org.lttng.ust.agent.utils;
import java.io.IOException;
-import java.lang.ProcessBuilder.Redirect;
-import java.nio.file.Files;
-import java.nio.file.Path;
import java.util.Arrays;
import java.util.List;
String shortUserName = userName.substring(0, Math.min(userName.length(), 7));
List<String> command = Arrays.asList("ps", "-e", "u");
- List<String> output = getOutputFromCommand(false, command);
+ List<String> output = ShellUtils.getOutputFromCommand(false, command);
return output.stream()
.filter(s -> s.contains("lttng-sessiond"))
.anyMatch(s -> s.startsWith(shortUserName));
*/
public static boolean checkForRootSessiond() {
List<String> command = Arrays.asList("ps", "-e", "u");
- List<String> output = getOutputFromCommand(false, command);
+ List<String> output = ShellUtils.getOutputFromCommand(false, command);
return output.stream()
.filter(s -> s.contains("lttng-sessiond"))
.anyMatch(s -> s.startsWith("root"));
}
-
- static List<String> getOutputFromCommand(List<String> command) {
- return MiscTestUtils.getOutputFromCommand(true, command);
- }
-
- static List<String> getOutputFromCommand(boolean print, List<String> command) {
- try {
- Path tempFile = Files.createTempFile("test-output", null);
-
- ProcessBuilder builder = new ProcessBuilder(command);
- builder.redirectErrorStream(true);
- builder.redirectOutput(Redirect.to(tempFile.toFile()));
-
- Process p = builder.start();
- p.waitFor();
-
- List<String> lines = Files.readAllLines(tempFile);
- Files.delete(tempFile);
-
- if (print) {
- /* Also print the output to the console */
- lines.stream().forEach(s -> System.out.println(s));
- }
-
- return lines;
-
- } catch (IOException | InterruptedException e) {
- return null;
- }
- }
}