2016-12-03 5 views
0

標準ユーザーアカウントでCentOS/Red Hat 7.xでnrjavaserialを使用する際に問題があります。 COMxポート(/ dev/ttySx)を開くと/ var/lockにロックが作成されますが、/ var/lockは/ run/lockへのリンクにすぎず、リブートするたびにルートオーナー&のアクセス権があります。nrjavaserialと/ var/lockへのアクセス許可(/ run/lockへのリンク)

私は2つの解決策が見つかりました:

  1. 修正C/C++/Javaソースと変更デフォルトのロックディレクトリ(TMP /ロック/へ)
  2. 起動のたびにロック/実行/の変更グループ権限(にしますダイヤルアウトグループの読み取り/書き込み許可)

どちらの方法が適切であり、正しく行うには?

PS標準ユーザーがダイヤルアウトグループにあります。

答えて

0

通常、従来の理由により、アプリケーションは/ var/lockディレクトリ内にロックファイルを作成します。両方のアプリケーションがロック方式を使用する場合に限り、2つのアプリケーションが同時にシリアルポートにアクセスすることはありません。オプション1は、他のアプリケーションが/ var/lockディレクトリのロックを探すため、機能しない可能性があります。オプション2も他の問題と同様に良い考えではありません。このファイルをnrjavaserialソースコードで参照してください。

ディレクトリ/ varまたは/ runは標準のルートファイルシステムの一部であり、init.rcスクリプトを再起動するたびに、 。なぜあなたにこのロックの問題があるのか​​を説明してください。

+0

問題はnrjavaserialであり、ロック問題のためRed Hat 7.0では動作しません。私はそれを動作させるためにsthをする必要があります。/var /ロック/ lockdev(TTY *ロックの新しい、最高のパス)にCソース内のディレクトリをロック \t 1.変更 \t \tまたは :今、私は唯一の2つのオプション(および他のオプションはありません)知っています\t \t 2.メイク/実行/グループをロックするづけしロック(/usr/lib/tmpfiles.d/legacy.confファイルを変更) \t \tまたは \t? – jakson

+0

正しいオプションは、ロックパーツを削除するためにnrjavaserialを変更するか、serialpunditなどの他のライブラリを試してみることです。 –

+0

nrjavaserialコード、特にC/C++パート(* .dll i * .soライブラリのソース)を調べました。 WindowsとLinuxのCコードにはバグがたくさんあります.Windows x64では動作しません!私はCコードをいくつか変更しましたが、今は* .so&* .dllライブラリがうまく動作しますが、完全なコードをレビューする必要があります。 Windows x64やCentOS風の環境ではnrjavaserialの使用をお勧めしません。 x64 WindowsとCentOSで動作するnrjavaserialの代替手段はありますか? Serialpunditは複雑すぎて、 "Windows 7以降"をサポートしています。どうして? - Windows XPまたはWindows 10のCOMポートのプログラミングは、同じAPI関数を使用します。 – jakson

関連する問題