[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00110] SL-C700+FD-2.02aでのサスペンド復帰について
- Subject: [FDclone-users:00110] SL-C700+FD-2.02aでのサスペンド復帰について
- From: Akihiko HIRANO <hiran@kt.rim.or.jp>
- Date: Mon, 17 Feb 2003 18:30:44 +0900 (JST)
みなさんはじめまして、平野といいます。
SL-C700 で FDclone Ver. 2.02a を使用させていただいています。
とても便利なプログラムを公開していただき、ありがとうございます。
さて、SL-C700 の bash から fd を起動させた状態で SL-C700 をサスペンドおよび
復帰させると fd が bash のバックグラウンドジョブになってしまうという現象に
ついて調べてみました。
(サスペンド時にカーネルが SIGSTOP、復帰時に SIGCONT を各プロセスに送るらしい
です)
いろいろと試した結果、私的にですが満足のいく環境を作ることができましたので
ご報告させていただきます。
(間違いや不適切な表現があればご指摘ください)
==== SL-C700 のサスペンド復帰時における FDclone の動作
1. 動作確認機器およびバージョン
Sharp SL Zaurus SL-C700
Linux Kernel バージョン: 2.4.18-rmk7-pxa3-embedix
Compiled by: SHARP
ROM Version : 1.20 JP
端末 / SL-C700標準のターミナル
bash / SL-C700標準の bash
GNU bash version 2.05.0(1)-release (arm-unknown-linux-gnu)
FDclone / FDclone Ver. 2.02a
dev_img-1.3でセルフコンパイル・リンク
(dev_img-1.3でコンパイル・リンクすると stat(), fstat(), lstat()の
リンクエラーが発生するため /usr/local/include/sys/stat.h を修正)
# 私の環境だけ?
2. サスペンド復帰時の動作
(1) 標準と思われる状態
_fdrc(FD-2.02a.tar.gz同梱) を ~/.fd2rc としてコピー後、'keymap BS "^?"'
を追加。
~/.bashrc は以下の通り。
export PATH=/usr/local/bin/:$PATH:/mnt/dev/bin
export TMPDIR=/var/tmp
fd 起動状態でサスペンド復帰すると fd が bash のバックグラウンドジョブと
なり bash プロンプトに戻る。
bash から fg[Enter] として fd をフォアグラウンドジョブにしても端末I/Oが
復元されていないため操作ができない状態となる。ESC[Enter]y[Enter]で fd を
終了可能。
(2) bash のジョブコントロールを無効化した状態
(1) の ~/.bashrc に以下を追加
function fd () { set +m; /usr/local/bin/fd $*; set -m; }
fd 起動状態でサスペンド復帰をしても fd は問題なし。
fd から EDIT_FILE で vim を起動している状態でサスペンド復帰すると vim が
fd のバックグラウンドジョブになり fd の画面に戻る。
EXECUTE_SH のプロンプトで fg[Enter] とすると vim がフォアグラウンドジョブ
になる。端末I/Oがおかしいが、':q' で vim を終了可能。
fd の EXECUTE_SH 後の[Enter] で bash を起動している状態でサスペンド復帰
すると fd の画面に戻る。
下矢印キーで bash のプロンプトが表示される。
bash のプロンプトで exit[Enter] とするとキー入力に反応がない(キー入力の
エコーバックは表示される)
そのときの ps -eflw の一部は以下の通り。
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
000 S zaurus 748 747 0 75 10 - 636 39144 16:46 ttya0 00:00:00 /bin/bash
000 S zaurus 801 748 0 75 10 - 588 661e8 16:50 ttya0 00:00:00 /usr/local/bin/fd
004 Z zaurus 851 801 0 75 10 - 0 38d84 16:51 ttya0 00:00:00 [bash <defunct>]
(3) bash および fd のジョブコントロールを無効化した状態
(1) の ~/.bashrc に以下を追加
function fd () { set +m; /usr/local/bin/fd $*; set -m; }
(1) の ~/.fd2rc に以下を追加
set +m
これにより(2) ので発生した現象がすべて回避される。
====
------
平野 章彦(Akihiko HIRANO)