Linux:バックグラウンドでのグラフィカルアプリケーションの起動

ご挨拶、同僚!



-仕事中に自宅のコンピューターのコンソールからlinuxdcppを実行しますか?

-システムのロード後すぐに起動しますが、自動ログオンは使用しませんか?

-サーバーにグラフィカルモードでのみ動作するプログラムがありますが、ユーザーのグラフィカルセッションを常に維持したくないですか?



質問の少なくとも1つに対する答えが「はい」の場合、この記事はあなたのためです。







私のように、あなたはしばしば、後で何かに接続できるように、何かをバックグラウンドで起動するタスクに直面したと思います。 コンソールプログラムに問題がない場合、ツールがあり、たとえば同じ画面などが知られています 。グラフィカルアプリケーションの場合、既製のツールはありません(またはほとんど知られていない)。



Xvfb (X仮想フレームバッファー)は、グラフィックカードではなくRAMを使用して出力する仮想Xサーバーです。



すべてが非常にシンプルかつ透過的に機能するため、ここでは詳しく説明しませんが(はい、深く掘り下げることはありません)、単にスクリプトの動作バージョンを説明します。 書き込み中に手を加えなければならなかった唯一のことは、セキュリティ問題を回避することなくセッションに接続できるようにXサーバーを許可することでした(つまり、「xhost +」の形式で回避策を使用しません)-すべてがどのように機能するかを理解するすぐには来ませんでした。 しかし、まず最初に。



スクリプト要件



-インストール済みパッケージ:xvfb、x11vnc、およびvncviewer(xtightvncviewerなど)

-Ubuntu 10.04(これは完全な要件ではありません。これはすべてが開始およびテストされたものです。少し修正した後、これはRHEL 5でも動作しますが、RHEL5のxvfbパッケージにはxvfb-runラッパースクリプトはありませんが、インターネットで見つけるか、Ubuntuのdebパッケージから取得できます)



アプリケーション起動スクリプト



#!/bin/bash # start_xvfb.sh #   user="giner" #        resolution="700x500x24" #    X- command=linuxdcpp # ,      #   X-     ,  # xvfb-run - -  Xvfb # /tmp/${user}.xvfb.auth - ,    MAGIC-COOKIE    X-.         $user # -screen 0 ${resolution} -auth /tmp/${user}.xvfb.auth -   Xvfb   #  X-   :99,       --server-num,    start_command="/usr/bin/xvfb-run -f /tmp/${user}.xvfb.auth -s '-screen 0 ${resolution} -auth /tmp/${user}.xvfb.auth' $command" #   .      $user,     "su". #         root (,   ) if ( [ "$(whoami)" = "$user" ] ) then bash -c "$start_command" else su -c "$start_command" -l $user fi
      
      







実行中のアプリケーションに接続するためのスクリプト



 #!/bin/bash # xvfb_connect.sh user=giner #     :99  VNC- x11vnc,      vncviewer.       MAGIC-COOKIE,         Xvfb XAUTHORITY=/tmp/${user}.xvfb.auth DISPLAY=:99 x11vnc -listen localhost -bg && vncviewer localhost
      
      







システム起動時の起動



システムの起動時にアプリケーションを起動するには、start_xvfb.shスクリプトを/etc/rc.localに追加するだけです。次に例を示します。

 ... /etc/_giner/scripts/start_xvfb.sh & ...
      
      







それだけです 素晴らしい管理をしてください!



Update1 :彼らは、partiwmプロジェクトの一部であるxpraについて(ykl)に言ったコメントで。 本質的に、これは、Pythonで記述されたVNCを必要としないスクリプトと同じタスクを実行するためのターンキーソリューションです。



Update2paramobilusが正しく指摘したように 、同様に、作業環境、ウィンドウマネージャー、X-s、さらにはビデオカードがなくても、サーバー上でアプリケーションを実行できます。



All Articles