'nohup disconnects after ssh connection drops

I am building a rest API with java, when the endpoint gets called. I will spawn a virtual shell with RunTime.getRuntime().exec(My_script.sh)

My script then proceeds to ssh into a server, create some files, and most importantly... I needs to run a script that sits on that server to process the files.


I run the command with

nohup myscript.sh > /dev/null/ 2>&1 & I also added sleep 5 because i read that nohup may take a second to get things started

The script runs until the shell disconnects and dies.


So as of now

  1. java application launches a shell
  2. the bash script initiates a ssh connection and creates a subshell that runs a secondary script
  3. while in the subshell, with our second script, we create some files and then we call nohup script to start the script
  4. subshell exits and terminates
  5. main shell exits and terminates
  6. script we called disconnects and never finishes running

Some things I have tried

I have tried calling the script from the ssh connection,

psudo example ssh user@host "nohup script.sh > /dev/null/ 2>&1 &"

also tried with different quotes

ssh user@host "nohup script.sh > /dev/null/" 2>&1 &


Another thing I can potentially do is keep the initial shell open. So that the script wont die when it disconnects... because it never will


I have looked into to other options like screen but I don't think it will be useful if the machine that initiated the script gets completely terminated after it starts

Things to note

I don't have control over the Linux box I ssh into, so I cannot install packages on that machine. I can however install packages on my shell



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source