Что-то вроде этого позволит более надежно зафиксировать код выхода вашего процесса.:
...
java -jar Xyz-port-0.0.1.jar > /dev/null & #optionally discard stdout of java
child=$!
wait $child
exit_status=$?
if [[ "$exit_status" -ne 0 ]]; then
# handle error
else
#handle success
fi
Обратите внимание, что вызов wait
будет заблокирован на неопределенный срок, поэтому, если вам нужно установить произвольное ограничение на количество времени, которое вы даете команде java
, вы можете заменить вызов wait
циклом. и некоторые ручные проверки ps
, чтобы убедиться, что процесс все еще выполняется. Это позволит вам установить сторожевой таймер и вызвать всех из пула, если процесс зависнет.
Если вам нужно запустить процесс java и обработать его код выхода, не находясь в активном сеансе терминала, вызовите родительский сценарий (выше )с кодом nohup
, а не кодом java
. Родительский сценарий может быть nohup
отредактирован и будет работать в фоновом режиме без управляющего терминала, надежно выполняя отправку электронной почты или очистку.
Параметры в /boot/config-...
отражают параметры конфигурации, с которыми было собрано ядро; большинство из них нельзя изменить во время выполнения. (Те, которые могут, не могут быть изменены путем редактирования /boot/config-...
, но с помощью других средств, таких как sysctl
.)
Настройки, показанные в sysctl -a
, являются настройками времени выполнения, доступными в /proc/sys
; большинство из них можно изменить во время выполнения. Они описаны в документации ядра .