GNU/Linux >> Znalost Linux >  >> Linux

Začít proces na jiném Tty?

Asi po hodině hledání toho nemůžu uvěřit nikdo se na tuto otázku ještě nezeptal…

Takže mám skript spuštěný na TTY1. Jak udělám, aby tento skript spustil nějaký libovolný program na TTY2?

  • Našel jsem tty , který vám řekne, na jakém TTY právě používáte.
  • Našel jsem writevt , který zapíše jeden řádek textu na jiný TTY.
  • Našel jsem chvt , který změní aktuálně zobrazený TTY.

Nechci zobrazovat TTY2. Chci jen, aby se hlavní skript normálně spouštěl, ale pokud ručně přepnu na TTY2, mohu pracovat s druhým programem.

Přijatá odpověď:

setsid sh -c 'exec command <> /dev/tty2 >&0 2>&1'

Dokud nic jiného nepoužívá druhý TTY (/dev/tty2 v tomto příkladu) by to mělo fungovat. To zahrnuje getty proces, který může čekat, až se někdo přihlásí; více než jeden proces čte svůj vstup z TTY will vést k neočekávaným výsledkům.

setsid se postará o spuštění příkazu v nové relaci.

Všimněte si, že command se bude muset postarat o nastavení stty správné nastavení, např. zapněte „vařený režim“ a onlcr takže výstup nového řádku přidá znak konce řádku atd.


Linux
  1. Jak zjistit, který proces vytváří soubor?

  2. Který proces má Pid 0?

  3. Jak identifikovat proces, který nemá PID?

  1. Čas zahájení procesu s časovým pásmem?

  2. Kde se vrací jiná cesta ke které?

  3. Jak zjistit, který proces zapisuje na disk v Linuxu

  1. Java ProcessBuilder:Výsledný proces se zablokuje

  2. Jak spustit proces ve vlastní skupině procesů?

  3. Nelze spustit službu postgresql na CentOS 7