надежный код возврата фонового процесса

Необходимо установить это поведение для "плагина" Кнопок Окна. В панели настройки переходят к вкладке "Items" и редактируют предпочтения плагина "Windows Buttons" - существует несколько опций фильтрации, в моей системе это похоже на это:

enter image description here

Вы, кажется, интересуетесь первым, т.е. "Витринами из всех рабочих областей или областей просмотра"

12
21.02.2014, 01:33
3 ответа
С [11940]bash[11941], у вас будет такая гарантия, если вы не запустили другое фоновое задание (и остерегайтесь, что фоновые задания можно запускать с помощью [11942] и [11943], а также с помощью [11944]coproc[11945] и с помощью подстановки процессов) между [11946]foo и [11947] и [11948]wait[11949]. [12236]POSIX требует, чтобы оболочка запоминала статус выхода как минимум 25 заданий после их отсутствия[11951], но [11952]bash[11953] запоминает намного больше. [12237] Теперь, если вы это сделаете: [12238] у вас нет гарантии, что [11954]bar[11955] не будет иметь тот же pid, что и [11956]foo[11957] (если [11958]foo[11959] закончился ко времени начала [11960]bar[11961]), так что даже если это маловероятно, [11962] подождите "$pid"[11963] может дать вам статус выхода из [11964]bar[11965]. [12239] Вы можете воспроизвести его с:[12240], что (в конечном итоге) даст вам [11966]0[11967] вместо [11968]12[11969].[12241] Чтобы избежать проблемы, одним из способов будет записать его как:[12242]
12
27.01.2020, 19:55
Да, вы можете положиться на [11928], подождите "$!" [11929], чтобы получить статус фонового задания. При выполнении в качестве скрипта bash не собирает автоматически завершенные фоновые задания. Таким образом, если вы запустите [11930] подождите [11931], он будет собирать задание в момент вызова [11932] подождите [11933].[12224] Вы можете проверить это с помощью простого скрипта:[12225], который будет выводить:[12226]
4
27.01.2020, 19:55
Я считаю, что ваше предположение верно. Вот выдержка из [11934]man bash[11935] относительно ожидания фоновых процессов. [12227] Если n указывает на несуществующий процесс или задание, то возвращаемое состояние - это 127. В противном случае, статус возврата - это статус выхода последнего процесса или задания, которое ждало.[12228]Так что, возможно, вам стоит проверить 127[12229]Есть похожий вопрос с совершенно другим ответом, чем может помочь.[12230]Bash script wait for processes and get return code[12231]edit 1[12232]Inspired by @Stephane's comments and answers I've expansion his script. Я могу запустить около 34 фоновых процессов, прежде чем он начнет терять трек. [12233]tback[12234]на моей системе производит[12235]
0
27.01.2020, 19:55

Теги

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