Guest User

Untitled

a guest
May 20th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. /**
  5.  
  6. C program to launch a Java Jar (eg: Minecraft server)
  7.  
  8. The purpose is to create a binary file that can be set with the SETUID permissions and owned by root.
  9.  
  10. Using this way, the server can run on the 80 port without be asked the root password.
  11.  
  12. */
  13. int main (int argc, char *argv[])
  14. {
  15. //Ruta al ejecutable de Java
  16. char * java = "/usr/lib/jvm/java-7-openjdk-amd64/bin/java";
  17. printf("Ejecutable de java: %s\n", java);
  18.  
  19. char * jar = "/opt/servidor/minecraft_server.jar";
  20. printf("Jar: %s\n", jar);
  21.  
  22. chdir("/opt/servidor/");
  23.  
  24. int pid;
  25. int pid_hijo;
  26. int status;
  27. pid = fork();
  28. switch(pid) {
  29. case -1:
  30. printf("Error al crear proceso %d\n",pid);
  31. exit(1);
  32. case 0:
  33. //El hijo: que llame a Java
  34. execlp("/usr/bin/java","/usr/bin/java","-jar","/opt/servidor/minecraft_server.jar", NULL);
  35. exit(2);
  36. default:
  37. //El padre
  38. wait(&status);
  39. main(argc, argv);
  40. break;
  41. }
  42.  
  43.  
  44. return 0;
  45. }
Add Comment
Please, Sign In to add comment