změna niceness (priority) běžícího procesu
<p>je možné nastavit novou úroveň <code>nice</code> běžícího procesu se známým id?</p><p>vyžaduje tato operace přístup root nebo je pouze vlastníkem procesu?</p>
<h1>terminál</h1><p>pokud jste na terminálu, můžete použít <a href="http://manpages.ubuntu.com/renice"><code>renice</code></a> </p><pre><code>renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...] </code></pre><p>jednoduchý příklad by byl</p><pre><code>renice 8 31043 31043: old priority 5, new priority 8 </code></pre><p>můžete také předat tvrdé příznaky, ale následuje to pořadí (musíte nejprve předat prioritu a pak pid - pokud změníte pořadí, zobrazí se zpráva o použití)</p><pre><code>renice -n 5 -p 31043 31043: old priority 8, new priority 5 </code></pre><p>priority fungují na stupnici <code>-20</code> to <code>19</code> - čím nižší číslo, tím vyšší je jeho priorita v systému.</p><p>pokud vlastníte tento proces, nebudete root potřebovat - bude-li však tento proces vlastněn jiným uživatelem nebo pokud plánujete změnu skupiny/uživatele root root (prostřednictvím <code>sudo</code>), bude vyžadován.</p>
1. Změna je možná pouze reinstalací (čistou).2. Není sebemenší důvod k tomu aby určité programy neběžely - chyba je určitě jinde než v bitové verzi OS...![](/Client.Images/smileys/6.gif) Je [prettify Automake](http://kim.tensta.gannert.se/projects/pretty-am/) , co chcete?







**Edit** : Jak Automake 1.10b, [tichý pravidla](http://www.gnu.org/software/hello/manual/automake/Options.html) je postavena-in. Není stejný kód nebo styl, ale podobný účinek. Upřímně řečeno, já bych jít s sestavení .NET, jak se zdá být jednodušší řešení a těsněji obsahoval řešení, než zahájit nový proces. Některé z důvodů, proč jsem pocit, že způsob, jakým jsou tyto:


1. S nástrojem příkazového řádku, že jste na trh nový proces. Takže je to zcela samostatný proces ID běh a bude probíhat mimo rozsah a aplikační domény vaší stávající aplikace. Veškerá komunikace mezi aplikací a procesu bude přes hranice procesu a bude muset být provedeno buď s telefonem, jakési sdílené paměti, nebo nějaký jiný přístup, který by mohl být těžkopádný (zejména při řešení otázek).
2. Se zahájením nového procesu, jste v podstatě ztratí kontrolu nad tímto procesem z vaší aplikace. Pokud vaše aplikace zemře nebo se vypne, budete muset tento proces výslovně zabít - jinak budete muset úchyty zůstat otevřené soubory uzamčeny, atd.
3. Včetně sestavení .NET v aplikaci umožňuje vše spustit ve stejném kontextu (obecně), který umožňuje lepší komunikaci mezi složkami, snadnější ladění a odstraňování poruch (obecně), a jediný způsob je řízena.
4. Máte trochu větší kontrolu nad kódu. Zahájení procesu je v podstatě black-box - nemáte ponětí, co se děje uvnitř ní. Je pravda, že se sestavení .NET máte podobný black-box scénář, ale vzhledem k tomu, že je ve stejném procesu, může mít nějaké další vhled do toho, jak jsou hovory byly provedeny, kde jsou výjimky být hozen, atd. V podstatě mít trochu větší vhled do složky s sestavení .NET spíše než zahájit nový proces.


To jsou jen některé myšlenky z vrcholu mé hlavy. Doufám, že to pomůže. Máte-li dotazy, dejte mi vědět a já vám zpracovat mé odpovědi. Hodně štěstí!! Pojďme pedantský, protože existují rozdíly, které mohou skutečně ovlivnit chování Váš kód je. Hodně z následujících je převzat z připomínek k [„Old New Thing“ článek](http://blogs.msdn.com/oldnewthing/archive/2006/12/14/1285437.aspx) .


Někdy se vrátila paměť novým operátorem se inicializuje, a někdy to nebude v závislosti na tom, zda jste typ newing up je [POD (obyčejné data)](https://stackoverflow.com/questions/146452/what-are-pod-types-in-c) , nebo pokud se jedná o třídu, která obsahuje členy POD a za použití kompilátor generované výchozí konstruktor.


* V jazyce C ++ 1998 jsou k dispozici 2 druhy inicializace: nuly a výchozí
* V jazyce C ++ 2003, byla přidána třetí typ inicializace inicializační hodnota.


Převzít:



```
struct A { int m; }; // POD
struct B { ~B(); int m; }; // non-POD, compiler generated default ctor
struct C { C() : m() {}; ~C(); int m; }; // non-POD, default-initialising m

```

V C ++ 98 kompilátor, by mělo dojít k následujícímu:


* `new A` - neurčitý hodnota
* `new A()` - zero-initialize
* `new B` - výchozí konstrukt (B :: m je neinicializované)
* `new B()` - výchozí konstrukt (B :: m je neinicializované)
* `new C` - výchozí konstrukt (C :: m je nula inicializaci)
* `new C()` - výchozí konstrukt (C :: m je nula inicializaci)


V C ++ 03 splňovalo požadavky kompilátor, vše by mělo fungovat jako tak:


* `new A` - neurčitý hodnota
* `new A()` - hodnota inicializovat, což je nula-inicializace, protože je to POD.
* `new B` - default-inicializuje (listy B :: M neinicializovaný)
* `new B()` - hodnota inicializuje B, která nulové inicializuje všechna pole, protože jeho výchozí ctor je kompilátor generována na rozdíl od uživatelsky definované.
* `new C` - default-inicializuje C, který volá výchozí ctor.
* `new C()` - hodnota inicializuje C, který volá výchozí ctor.


Tak ve všech verzích C ++ je tu rozdíl mezi `new A`i `new A()`proto, že A je POD.


A tam je rozdíl v chování mezi C ++ 98 a C ++ 03 pro případ `new B()`.


To je jeden z prašných koutech C ++, které mohou zbláznění. Při stavbě objektu, někdy budete chtít / potřebovat parens, někdy si absolutně nemůže mít, a někdy to nevadí. A den před tím? Bylo aktualizováno, instalován nějaký SW co si něco přidal pod OS, nebyla v aktualizaci i nějaká k ovladačům*? Když se vrátíš bodem obnovy stane se něco?\_* Ty je vždy lepší aktualizovat (je-li to vůbec nutné) ručně, nenechat OS. situace by nyní měla být o hodně lepší. chtělo by se mi říct “vyřešena”, ale tím bych to na víkend zakřikl. tedy rychlost aplikace pravidel by měla být na předchozích hodnotách. <p>předejte <code>--allow-unauthenticated</code> možnost <code>apt-get</code> jako v:</p><pre><code>sudo apt-get --allow-unauthenticated upgrade </code></pre><p>z manuálové stránky uživatele <code>apt-get</code>:</p><blockquote> <p>--allow-neautenticated<br> ignorujte, pokud balíčky nemohou být ověřeny a nevyzvěte to. to je užitečné pro nástroje, jako je pbuilder. konfigurační položka: apt :: get :: allowunauthenticated.</p> </blockquote><p>toto nastavení můžete nastavit jako trvalé pomocí vlastního konfiguračního souboru na adrese <code>/etc/apt/apt.conf.d/</code> dir. název souboru může být <code>99myown</code> a může obsahovat tento řádek:</p><pre><code>apt::get::allowunauthenticated "true"; </code></pre><p>tímto způsobem nemusíte tuto možnost používat pokaždé, když chcete nainstalovat software. <strong>poznámka: nedoporučuji ve výchozím nastavení tuto možnost, obchází kontroly podpisů, které by mohly protivníkovi umožnit napadnout počítač.</strong></p> Mozna je treba ho spustit s nejakymi parametry, ktere by vedel jeho autor (manual, web...). Ptate se na konkretni procesor?Kterou bezpecnostni aktualizaci myslite?Snížení - úbytek, ztráta, zmírnění, zmenšení <p>k tomu je užitečný zabudovaný <code>type</code>. to vám nejen řekne o aliasech, ale také o funkcích, vestavěných slovech, klíčových slovech a externích příkazech.</p><pre class="lang-none prettyprint-override"><code>$ type ls ls is aliased to `ls --color=auto' $ type rm rm is /bin/rm $ type cd cd is a shell builtin $ type psgrep psgrep is a function psgrep () { ps -ef | { read -r; printf '%s\n' "$reply"; grep --color=auto "$@" } } </code></pre><p><code>type -a cmd</code> zobrazí všechny příkazy pod tímto jménem v pořadí podle priority, což je užitečné pro výše uvedený alias <code>ls</code>, kde alias sám volá <code>ls</code>.</p><pre class="lang-none prettyprint-override"><code>$ type -a ls ls is aliased to `ls --color=auto' ls is /bin/ls </code></pre><p>to vám řekne, že když spustíte <code>ls</code>, <code>/bin/ls</code> bude použito a <code>--color=auto</code> bude zahrnut do seznamu argumentů, kromě všech ostatních, které sami přidáte.</p>