Çalışan bir uygulamayı nasıl hazırda bekletebilirim?


16

Örnek kullanım örneği:

Chromium'u birkaç sekme açık olarak çalıştırıyorum ve önümüzdeki 20 dakika boyunca uygulamaya erişmem gerekmediğine karar veriyorum. Dizüstü bilgisayar pil süresini korumak için, uygulamayı kapatmak zorunda kalmadan Chromium'u hazırda bekletmek (dondurmak) istiyorum (tüm sekmeleri yeniden açmak ve yeniden yüklemek hazırda bekletmek istediğim zaman gerektirir).


1
İkinci cevabı buradan kontrol edin: stackoverflow.com/questions/2134771/… . Mesele, kromun birçok PID kullanması ve her açtığınızda farklı olmasıdır ... ancak ana olanı (işlem yöneticisinde orijinal simgeye sahip olan) durdurmak iyi çalışıyor gibi görünüyor.
GreggD

1
Yalnızca Chromium'u önemsiyorsanız ve başka herhangi bir uygulamayı önemsemiyorsanız , OneTab veya Session Buddy gibi sekme yönetimi için tasarlanmış bir Chromium Uzantısı kullanabilirsiniz .
Moshe Katz

Teşekkür ederim ama killallçözümü gerçekten çok zarif buluyorum . :)
orschiro

Yanıtlar:


22

Bu killallkomutu, SIGSTOPonları dondurmak için belirli bir adla eşleşen tüm işlemlere bir sinyal göndermek ve daha sonra SIGCONTtekrar çözdürmek için aynı yolu göndermek için kullanabilirsiniz.

Önce işlem adını bulun pgrep -l SEARCH_PATTERN:

$ pgrep -l chrom
13010 chromium-browse
13036 chromium-browse
13038 chromium-browse
13153 chromium-browse
13166 chromium-browse
13169 chromium-browse
13175 chromium-browse
13187 chromium-browse
13195 chromium-browse
13206 chromium-browse

Uzun adları keseceğini unutmayın, bu nedenle reksiktir. Ancak bu bir sorun değildir, çünkü Tabişlemi otomatik olarak tamamlayacak olan işlem adını girmek için tamamlamayı kullanabilirsiniz .

Sonra SIGSTOPsinyali şöyle adlandırılan tüm işlemlere gönderirsiniz chromium-browser:

$ killall -s STOP chromium-browser 

Chromium penceresi yanıt vermiyor gibi gri renkte görünür. Gerçekten tepkisiz hale geldi, bu yüzden beklenen bir şeydi. Artık pencereyle hiçbir şekilde etkileşime giremezsiniz (uygulamanın kendisi tarafından değil, pencere yöneticisi tarafından işlenen menü çubuğu ve simge durumuna küçültme vb. Hariç). Ancak, düğmeler vb. Tıklatılarak oluşturulan olaylar yine de oluşturulur ve uygulamanın olay kuyruğuna eklenir, böylece uygulamayı yeniden çözdüğünüzde hepsi aynı anda işlenir!

SIGCONTBelirtilen işlemlere sinyal gönderen bu komutu çalıştırarak uygulamayı tekrar çözersiniz :

$ killall -s CONT chromium-browser 

Bazen bir uygulamanın bu şekilde dondurulması, uygulamanın çökmesine neden olabilir, bu nedenle bir uygulamayı dondurmadan önce önemli şeylerin kaydedildiğinden emin olun.

Nadir durumlarda, masaüstü ortamı / pencere yöneticisi / başka herhangi bir şey bile yanıt vermeyebilir. Bu durumda dondurulmuş uygulamayı bir TTY aracılığıyla çözmeniz gerekir:

TTY1'e geçmek için Ctrl+ Alt+ tuşlarına basın F1. Giriş yapmanız istenir, bu yüzden kullanıcı adınızı ve şifrenizi girin. Ardından, uygulamayı normal terminal öykünücünüzde uyguladığınız şekilde çözme komutunu çalıştırın. Bundan sonra Ctrl+ Alt+ kullanarak masaüstüne (TTY7) geri dönün F7ve tekrar iyi olmalısınız.


4
Birlikte başladığından beri pgrep, sen devam olabilirdipkill
Muru

1
Uygulamanın çökme riski SIGSTOPvar olsa da, küçük olduğunu söyleyebilirim. Chromium'da sıklıkla kullandım ve bir çökmenin nedeni olduğunu hatırlamıyorum.
kasperd

Ben smtg yeni öğrendim! killall! ;-)
Fabby

8

Askıya almak için şunları deneyin: killall -SIGTSTP chromium-browser

Bu işe yaramazsa, güçlü sürümünü denemek: killall -SIGSTOP chromium-browser.

Her iki durumda da, kullanmaya devam etmek killall -SIGCONT chromium-browser. Firefox ile denedim ve işe yaradı. Ancak, askıya alınmış durumdayken Chromium'daki düğmelere tıklarsanız, yürütmeye devam ettiğinizde bu öğeleri yürüteceğini unutmayın.


3
SIGSTOP / SIGCONT benim için çalışıyor, sadece chromium-browserişlem adı olarak girmeniz gerekiyor . +1
GreggD

1
Ya google-chromeda Google Chrome kullanıyorsanız, farkın kafa karıştırıcı olduğu için
kedi

2

Aşağıdakileri deneyebilirsiniz (bir Terminalde):

ps aux | grep gedit

Sonra böyle bir şey göreceksiniz:

barend    7166  5.3  1.0 722620 39044 ?        Sl   16:19   0:00 gedit

7166 sayısını (ya da her hangi bir sayı) yazın ve yapın:

kill -STOP 7166

Bu, sürecin yürütülmesini askıya alacaktır. Kullandığı belleği hemen serbest bırakmaz, ancak ihtiyaç duymaları halinde bellek diğer işlemler için kullanılabilir olacaktır.

Sonra yap

kill -CONT 7166 programla tekrar çalışmak.

Uygun olduğunda 7166'yı değiştirmeniz gerektiğini unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.