Когда-либо полезно сделать nohup ... &
? Да. Если Вы только запускаете процесс "в фоновом режиме" с &
, тот новый процесс все еще имеет членство в "группе процесса исходной оболочки". Если та оболочка или группа процесса получают определенные сигналы (SIGHUP, например), по умолчанию они выходят. Это означает это при выполнении процесса с &
от оболочки, запущенной xterm, или rxvt или некоторым другим эмулятором терминала работы с окнами, когда Вы закрываете окно, фоновый процесс получает SIGHUP. Большая часть небрежно записанного кода не обрабатывает SIGHUP и поэтому выходит.
Если Вы делаете nohup ... &
, nohup
наборы команд SIGHUP к проигнорированному, и затем должностные лица команда. Это недавно exec'ed команда сохраняет маску сигнала этим nohup
установка, если команда не делает некоторый сигнал, обрабатывающий себя. При закрытии xterm или rxvt или что бы то ни было, ядро поставляет SIGHUP процессу команды, который проигнорирован. Это продолжает бежать.
Выполнение a nohup
на команде позволяет, она для продолжания бегать за Вами закрывает xterm, или Вы выходите из системы.
Если я хочу использовать другую версию Java, я делаю две вещи:
JAVA_HOME
как подходящий для той установки Java и экспорта это.Из-за пути PATH
ищется, если Вы добавите к концу пути, то новая версия не будет использоваться. Что-либо добавило в конец пути, только добавляет новые команды, он не заменяет существующие команды. Предварительное ожидание к PATH
переменная будет использовать команду в новом каталоге в предпочтении к другой команде.
Команды как java
часто включайте много символьных ссылок, прежде чем Вы доберетесь до программы. Используя ${JAVA_HOME}/bin
обходы любая косвенность, и предоставляют прямой путь различным связанным с Java командам.
Править: Если Вы хотите запустить только определенные программы с другой версией Java, Вы могли бы использовать обертку как это:
#!/bin/bash
# javawrapper - replace Java for a command.
export JAVA_HOME=$1; shift
PATH=${JAVA_HOME}/bin:$PATH
$*
Можно затем назвать обертку с командой как.
javawrapper /opt/java6 PyCharm
Вы могли также добавить псевдоним к Вашему ~/.bashrc
файл как это
alias PyCharm='javawrapper /opt/java6 PyCharm'
ArchLinux mantiene los diferentes JDKs en el directorio /usr/lib/jvm, cambiar el JDK por defecto es cuestión de modificar los enlaces simbólicos allí:
# ls -al /usr/lib/jvm
lrwxrwxrwx 1 root root 14 May 31 19:58 default -> java-8-openjdk
lrwxrwxrwx 1 root root 18 May 31 19:58 default-runtime -> java-8-openjdk/jre
drwxr-xr-x 7 root root 4096 May 27 21:45 java-10-openjdk
drwxr-xr-x 6 root root 4096 May 31 14:35 java-8-openjdk
drwxr-xr-x 7 root root 4096 May 31 19:56 java-9-openjdk
Arch tiene un guión especial para eso:
# archlinux-java set java-10-openjdk
y obtienes:
# java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10)
OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)
también puede usar las opciones 'arreglar' y 'estado':
# archlinux-java fix
# archlinux-java status
Available Java environments:
java-10-openjdk (default)
java-8-openjdk
java-9-openjdk
$PATH
. Но как я только выполняю другую версию Java для определенных приложений? – NT3RP 17.11.2012, 20:43