Nettigkeit eines Hintergrundprozesses

Nettigkeit eines Hintergrundprozesses

Haben Hintergrundprozesse unterschiedliche Nice-Werte? Mir ist aufgefallen, dass der Standardwert 0 nicht der ist. Das könnte ein Problem sein, weil es eine geringere Priorität hat. Weiß jemand, wie man dieses Verhalten ändert? Ich führe Java über das folgende Startskript aus und nein, nicein diesem Skript wird es nicht aufgerufen.

nohup ./start.sh &

F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  5330  12759      1  0  84   4 -  3283 -      ?        00:00:00 start.sh
0 S  5330  12772  12759  1  84   4 - 1462473 -    ?        00:19:12 java

Antwort1

Der Benutzer, der dieses Skript ausführt, startet es im Hintergrund aus einer interaktiven kshShell-Sitzung.

Die kshShell hat eine Shell-Option namens bgnice, die in ksh93ist aufstandardmäßig, was dazu führt, dass die Shell Hintergrundjobs mit einem von Null verschiedenen Niceness-Wert startet (er wird 4 höher sein als der der Shell, von der aus der Job gestartet wird).

Das steht aus dem ksh93Handbuch:

bgnice Alle Hintergrundjobs werden mit niedrigerer Priorität ausgeführt. Dies ist der Standardmodus.

Um diese Option auszuschalten, verwenden Sie

set +o bgnice

In einigen Varianten der kshSchale (zB pdkshundmöglicherweise mksh), ist die Option noch verfügbar, abernichtstandardmäßig eingestellt.

verwandte Informationen