Я пытаюсь запустить screen
особым образом (я делаю необычный скрипт), и он работает некорректно.Проблемы с экраном GNU
Мой сценарий:
#!/bin/bash
#startserver
set -m
cd /home/USER/SERVER_FOLDER/
screen -Dm -S SERVER java -Xmx768M -Xms768M -jar ./JARFILE.jar [email protected] &
PID=$!
echo $PID > ./.mc.pid
(sleep 0.5; sudo /usr/bin/oom-priority $PID) &
(wait $PID; startserver_after) &
screen -r $PID.SERVER
/usr/bin/oom-priority
является coommand я сделал, что устанавливает приоритет ИДП в -16
.
startserver_after
- это команда, которую я хочу запустить после java
выходов.
Это не работает, потому что я не могу возобновить screen
. Глядя на screen
страницы руководства:
-D -m This also starts screen in "detached" mode, but doesn't fork a new process. The command exits if the session terminates.
Это должно означать:
pid
изscreen
должны быть такими же, как и уjava
, однако, что работает.- Это все еще
screen
, поэтому я должен быть в состоянии добраться до негоscreen -r SERVER
(но я не могу).
Когда я запускаю линию без амперсанда, положив его в фоновом режиме, он просто ничего не делает, пока не выйдет java
. Нет выхода.
Вы не буквально используете код 'screen -r SERVER', вы? Это не документированное использование. из 'man screen':' screen -r [[pid.] tty [.host]] 'OR' screen -r sessionowner/[[pid.] tty [.host]] '. Удачи! – shellter
@shellter в стороне от $ PID, имена во всех шапках заменяются информацией, которая может вводить в заблуждение/вводить в заблуждение или конфиденциально. Но спасибо за информацию с manpage. Я обновил сценарий. – Coder256
какая доза 'screen -r SERVER' возвращается? – mofoe