У нас есть процесс Java, который был создан с использованием Appassembler. Он работает нормально, если он запущен и работает на переднем плане:
[ec2-user@ip-xxx ourapp-0.0.1-SNAPSHOT]$ bin/ourapp
Starting in APP_HOME=/home/ec2-user/app_home
Press Q to quit
Затем мы можем получить доступ и протестировать приложение успешно. Однако, если мы запустим его в фоновом режиме, он не только перестанет работать, но мы не сможем его оживить, не выдвинув его на передний план:
[ec2-user@ip-xxx ourapp-0.0.1-SNAPSHOT]$ bin/ourapp &
[1] 11661
Starting in APP_HOME=/home/ec2-user/app_home
Press Q to quit
## Not accessible!
[ec2-user@ip-xxx ourapp-0.0.1-SNAPSHOT]$ jobs
[1]+ Stopped bin/ourapp
[ec2-user@ip-xxx ourapp-0.0.1-SNAPSHOT]$ bg %1
[1]+ bin/ourapp & ## Still not accessible!
[ec2-user@ip-xxx ourapp-0.0.1-SNAPSHOT]$ jobs
[1]+ Stopped bin/ourapp
[ec2-user@ip-xxx ourapp-0.0.1-SNAPSHOT]$ fg %1
bin/ourapp ## Now, it's accessible.
Я начинаю это неправильно? Есть ли способ сохранить работу, даже если она работает в фоновом режиме? Мне нужно запустить его как процесс-демон с nohup
а затем выйти из системы, но я не могу поддерживать его в рабочем состоянии, пока он не останется процессом переднего плана, что невозможно.