Есть ли любой способ открыть программу, которая работает в фоне. Я разработал приложение в Java для человечности и хочу открыть то приложение через его pid, если это уже - выполнение точно так же, как скайп, скайп не, создают новый экземпляр, если это уже выполняет щелчки whethere от средства запуска (меню) insted нового экземпляра, это вновь открыло тот же процесс.
Согласно ответу @ Peter.O и вопросу @Omid в http://Unix.stackexchange.com , если вы получите PID программа, которую вы знаете, что это за программа, затем с помощью следующей команды вы можете переключиться на нужную вам программу:
, например, если вы берете PID Firefox с помощью команды pidof , как pidof firefox
, вы получите результат, похожий на 3547
, затем передадите этот PID команде ниже и переключитесь к вашей программе, для которой вы используете его PID:
wmctrl -ia $(wmctrl -lp | awk -vpid=$PID '$3==3547 {print $1; exit}')
Если Вы уже ввели команду и забыли использовать &
, можно поместить задание переднего плана в фон путем ввода ^Z (Ctrl-Z) для приостановки задания, сопровождаемого bg
помещать его в фон:
$ sleep 99
^Z
[1]+ Stopped sleep 99
$ bg
[1]+ sleep 99 &
Можно принести фоновое задание в передний план, так, чтобы оболочка ожидала его снова, с помощью fg
:
$ jobs
[1]+ Running sleep 99
$ fg
sleep 99
Можно перечислить задания текущей оболочки с помощью команды заданий.
$ jobs
[1]+ Running sleep 99
Если Вы хотите работать, пространственное задание на переднем плане/фоне просто используют идентификатор процесса для перемещения его в передний план/фон. посмотрите этот пример:
$ sleep 99 # run first job
^Z
[1]+ Stopped sleep 99
$ bg
[1]+ sleep 99 &
$ sleep 1000 # run second job
^Z
[2]+ Stopped sleep 1000
$ jobs # view all jobs
[1]- Running sleep 99 &
[2]+ Stopped sleep 1000
$ bg %2 # move jobs number 2 to run in background
[2]+ sleep 1000 &
$ jobs # view all jobs
[1]- Running sleep 99 &
[2]+ Running sleep 1000 &
Оба из заданий работают в фоне.
$ fg %2 #switch to second job and run it in foreground
sleep 1000 #sleep 1000 is now running in foreground
Примечание: Необходимо уничтожить эти задания при помощи kill %processID
.
пример: kill %2
(уничтожьте вторую работу с идентификатором № 2 процесса),