ncursesライブラリを使用するリモートサーバーでリモートアプリケーション(ConnectionManagerという名前)を実行し、それを自分のローカルコンピュータで起動する必要があります。
ConnectionManagerは、ncursesを使用して他のプロセス(自体)を分岐し、着信tcp / ip接続を待つプログラムです。
優れた:
Distributor ID: ScientificSL
Description: Scientific Linux SL release 5.5 (Boron)
Release: 5.5
Codename: Boron
(Like Centos5.5)
私は次のスクリプトを使用します。
#!/bin/bash
INFORMIXDIR=/opt/informix
INFORMIXSERVER=server1_on
ONCONFIG=onconfig.eda
PATH=$PATH:$INFORMIXDIR/bin
export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH
echo $INFORMIXSERVER
echo $ONCONFIG
echo "Launch ConnectionManager"
export DISPLAY=:0.0 && xterm -e 'sudo -E /opt/informix/server /ConnectionManager'
すべて動作します。
古いスクリプトが機能しない
Distributor ID: Scientific
Description: Scientific Linux release 6.4 (Carbon)
Release: 6.4
Codename: Carbon
ConnectionManager は IP 接続を許可しません。
ConnectionManagerプログラムをローカルコンピュータで起動したときにリモートコンピュータでも実行したいと思います。
何が問題なの?
私は一生懸命働いたscreen -d -m ./ConnectionManager
。アプリケーションは実行されますが、リモートコンピュータでは表示されません。 xtermウィンドウでConnectionManagerを見る必要があります。
sudoはConnectionManager tcp / ip接続をブロックできますか?
更新: このコマンドを使用すると、sudo './ConnectionManager' すぐに次のメッセージが表示されます。 [1]+ 停止しました sudo './ConnectionManager'
コードを確認しましたが、問題はint setpgrp(void)
ConnectionManagerのディレクティブです。
なぜ?
答え1
@MichaelKjörlingがコメントしたように、ConnectionManager
ターミナルマルチプレクサ(または)またはスクリプトを実行できます。screen
tmux
例のコマンドを使用すると、ほぼすべてが来ました。
$ screen -d -m ./ConnectionManager
このコマンドを実行すると端末から切り離されるため、ConnectionManager
起動後の出力は表示されません。次のコマンドを使用して、この特定の画面セッションに再接続できます。
$ screen -r
Control切断するには、+ A+キーの組み合わせを使用してくださいD。ニーモニック「注意」+「接続切れ」を常に覚えています。
このスクリプトを使用する必要がある場合は、screen
セッションでも実行できるように少し変更してください。
#!/bin/bash
INFORMIXDIR=/opt/informix
INFORMIXSERVER=server1_on
ONCONFIG=onconfig.eda
PATH=$PATH:$INFORMIXDIR/bin
export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH
echo $INFORMIXSERVER
echo $ONCONFIG
echo "Launch ConnectionManager"
sudo -E /opt/informix/server/ConnectionManager
ConnectionManager
その後、スクリーンセッションのようにこのスクリプトを実行できます。
$ screen -d -m yourscript.bash
そして、上記と同じ接続、切断方法を使用してください。画面の場合複数の画面「セッション」がある場合は、次のコマンドを使用して一覧表示できます。
$ screen -ls
次に、リストから1つを選択してリンクします。
$ screen -r <name>
たとえば、
$ screen -ls
There are screens on:
1506.bp (Detached)
32090.dl (Detached)
2 Sockets in /var/run/screen/S-root.
$ screen -r 32090.dl