Как открыть программу из идентификатора процесса?

Есть ли любой способ открыть программу, которая работает в фоне. Я разработал приложение в Java для человечности и хочу открыть то приложение через его pid, если это уже - выполнение точно так же, как скайп, скайп не, создают новый экземпляр, если это уже выполняет щелчки whethere от средства запуска (меню) insted нового экземпляра, это вновь открыло тот же процесс.

0
задан 21 September 2014 в 18:09

2 ответа

Согласно ответу @ 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}')
1
ответ дан 7 October 2019 в 02:01

Если Вы уже ввели команду и забыли использовать &, можно поместить задание переднего плана в фон путем ввода ^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 процесса),

2
ответ дан 7 October 2019 в 02:01

Другие вопросы по тегам:

Похожие вопросы: