• 締切済み

lsコマンドでforkできない

Vine6.0の載ったマシン(node1とする)をlogin shellをzshにして使っています。 teratermなどを使って、node1にsshでログインし、lsコマンドを使用すると、 ls: fork failed: リソースが一時的に利用できません というメッセージが出て、lsが失敗します。zshをもう一度子シェルとして実行すると、 解決します。 他のコマンドは問題なく使えているので、lsが悪いのか、zshが悪いのかだと思うのですが、 理由はわかりますでしょうか? よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.2

素直に見ると、 ls: fork failed: リソースが一時的に利用できません というのは、ls コマンドが出しているはずです。zshが出しているなら、 zsh: メッセージ となるはず。 ただ、ls が別のコマンドをforkする(起動する)というのは考えにくいのですが、どういうオペランドを指定したのでしょうか?

hhama
質問者

補足

ご回答ありがとうございます。 lsは、ls -FCにaliasして使っています。/bin/lsを直接呼び出すと大丈夫のようです。今まで(Vine6.0にするまで)、このaliasで問題になったことは無かったのですが、zshのバージョン(4.3.11)の問題なんでしょうか?

回答No.1

直接の回答じゃなくって恐縮ですが。zshに限らずこういった場合の一般的な切り分け方法の最初の一歩をば。 もし仮にlsコマンドに問題があるかも?と疑われたのであれば、次のようにタイプして ls コマンド自体の問題かどうか切り分けできると思いますがいかがでしょうか?(以下、行頭の$はコマンドプロンプトと解釈ください) (1) $ /bin/ls を実行した時にどうなるか?これで問題がないのであれば、少なくとも /bin/ls コマンドに問題はないと判断できるのでは?(他のシェルでは問題ないとの事なので結果は問題ないことは想像できるのですが。とりあえずシェルのエイリアスなどの要因を排除する方法として) (2) $ type ls を実行した時に、貴方様が入力した ls コマンドの実態が分かるのではないでしょうか?その後は一つ一つ .zsh なんたらかんたらを吟味していけば解決するかも?です。 (3)とは言え、やっぱり次の点は腑に落ちません。ご質問者様が悩んでいるのも、もっともだなぁ、と。 >zshをもう一度子シェルとして実行すると、解決します。 これについてはちょっと明確な理由が思いつきません。上記(2)の理由だと仮定してみると、もう一回 zsh を起動した時には何故問題が発生しないかの理由が思いつかないからです。(前述のように(1)も違うだろうと・・) (4)可能ならば、パラメータを変えて検証してみてどうなるか?の検証は可能でしょうか・ (a)teratermなどの端末エミュレーターではなく、コンソールから直接ログオンして変化があるかどうか? (b)putty jpなど、他の端末エミュレータでログオンしてどうなるか?

hhama
質問者

補足

ご回答ありがとうございます。 lsは、ls -FCにaliasして使っています。/bin/lsを直接呼び出すと大丈夫のようです。今まで(Vine6.0にするまで)、このaliasで問題になったことは無かったのですが、zshのバージョン(4.3.11)の問題なんでしょうか? ちなみに、puttyでも同じ問題が発生します。

関連するQ&A

  • PHPからシェルコマンドの実行

    PHPからシェルコマンドを実行したいのですが SSHやSCPコマンドが使えません。 phpからlsなどは問題なく実行できます。 具体的には以下のように書いています。 `scp test.log user@host:/home/hoge`; shell_exec()を使っても実行されませんでした。 環境は以下のとおりです。 PHP 5.4.17 CentOS 5.8 sshやscpコマンドをphpから実行するには何か特別な方法が必要なのでしょうか。 ご存知の方、教えてください。

    • ベストアンサー
    • PHP
  • シェルの実行中にユーザ切り替えてコマンド実行

    はじめまして。 シェル初心者です。 shell.shをrootユーザでクーロン実行していますが、 shell.shの処理の中で、違うユーザでコマンド実行したいのですが、 可能かどうかも、方法が分かりません。 教えていただけないでしょうか。 環境はLinuxです。 下記のコマンドを実行したいです。 リモートでログインしてコマンド実行結果を取得する ssh -l tomcat server_tomcat grep test /tmp/test.log ※他のユーザでsshを実行してコマンド結果を取得したいです。 以上。宜しくお願い致します。

  • SSHをsystem関数で。

    SSHログイン先のコマンド結果出力と、SSHログイン先のプロンプトを表示させたいです。 Perlでsystemを使用してSSHログイン先でコマンド実行した結果とプロンプト表示のみ 出力したいのですが、下記ではうまくいきません。。。 system( ssh -q 10.x.x.x ; ls);  *ここでsshはパスワードやユーザーを聞かれないように設定済み。 *"-q"はsshのオプションで、SSHログイン時の出力をしない設定 *ログイン先シェルはcsh (求める出力結果)************** [sshログイン先prompt] ls結果・・・ ls結果・・・ [sshログイン先pprompt] ****************************** 不明確な部分等ありましたらすみません。。。 どうかご教授お願いいたします。

  • LinuxとMacのコマンドのオプションの違い

    LinuxとMacのターミナルコマンドのオプションの違いについて質問があります。 例えば、lsコマンドを用いる場合、Linuxでは 「ls -l /」と「ls / -l 」は同じ動作をしますが、Macでは、後者(オプションを後ろにつける)と動作しません。 同様にrmコマンドの-rなども後ろにつけると動作しません。 この違いは何の違いから生じるものなのでしょうか? ターミナル?コマンド?shell?OS? また、macで動作させる方法はあるのでしょうか? よろしくお願いいたします。 LinuxはUbuntu16.04、MacはMojaveです。 シェルは共にbashです。

  • ユーザの利用コマンドを制限

    SuSE Linux 9.3 を使っております。 今回はあるユーザAに対してSSHによるログインのあとにホームディレクトリにあるシェルスクリプトだけを実行させるようなアカウントを作成したいのですが、そういったことは可能でしょうか。 また特定のユーザに対して「ls」は使わせるけど「rm」は使わせないうような細かな調整は可能でしょうか。 ※今回のユーザAに実行させたいシェルスクリプトは特定のファイルを特定のファイルにコピーして古いのは削除してしまうというシンプルなものです。

  • 一般ユーザーでログインできない事象

    Solaris10 10/09をVMware Fusion上にインストールし、一般ユーザーを追加しようとしました。 以下のような感じで↓ useradd -u 1000 -s /bin/zsh user1 ユーザーは問題なく作成され、passwdコマンドでパスワードも変更しましたが、loginコマンドでログインしようとすると 「No utmpx entry. You must exec "login" from the lowest level "shell"」 というエラーが出力されてログインできません。 同じような質問されている方がいてhttp://oshiete1.goo.ne.jp/qa429846.htmlにありますが、ディスクの空き領域には特に問題はないように思います。 ログインするために必要な設定などが他にあるのでしょうか? 教えて頂ければ幸いです。

  • FTPコマンドでつながらない

    VineLinux2.5とwindowsxpをマルチブートでつかっています。 それにwindows2000のマシンでプロンプトからFTPコマンドでファイルの転送ができると知り、 ftp 192.168.0.4 のようにやってみたのですが、接続が拒否されました、と出てしまいます。 Vineのほうからシェルで試してみると、incorrectと出てやはりつながりません。 XPを起動させて、xp-2000でやっても、拒否されました、と出てしまいます。 PINGは帰ります。 ファイアヲールもきっているつもりです。 パソコン同士はハブでつながっています。 後何を確認すればいいでしょうか?

  • TeraTerm Domain名を用いてログインする方法

    お世話になります。 Vine Linux3.2マシン 192.168.11.8 BIND 9.2 のDNSサーバがなんとか動いています。 このマシンへ、WindowsXPマシンよりTeraTermでドメイン名を用いてログインしたく四苦八苦です。 TeraTermで192.168.11.8で接続すれば、ID,パスワードを入力後ログインできます。 この、192.168.11.8の代わりにshuttle.rqgdomain.co.jp でログインしようとすると、「無効なホスト」というメッセージがでてログインできません。 Vine Linux3.2マシン 192.168.11.8 で、 # host 192.168.11.8 8.11.168.192.in-addr.arpa domain name pointer shuttle.rqgdomain.co.jp. # host shuttle.rqgdomain.co.jp shuttle.rqgdomain.co.jp has address 192.168.11.8 となります。 名前解決はできていると、いうことだと思います。 何か超基本的なことがわかっていないような気がするのですが、 当たり前と思うことほどどうもわからなくて困っています。 おわかりになる方見えましたらよろしくお願いいたします。

  • シェルの実行ができません

    TeraTerm上で [ora10gas@doao shell]$ ./get_daisya.csh 上のようにシェルを実行してみたのですが、 /bin/ls: 照合パターンに合いません. と表示されます。 これしか情報が出せませんが、こういうときはどこを確認したら解決できるか ご教授していただけませんか。 以上、よろしくお願いします

  • bash --login -i ??

    windows の cygwin でセットアップされる cygwin.bat を見ると、 bash --login -i と書いてあります。 --login 、-i とは何だろう、と思って man bash とすると、 --login はログインシェル -i はインタラクティブモード となっています。 (1) ログインシェルとはなんでしょう? 気づいたこととしては、コマンドプロンプトから bash と入力するだけのときと、--login をつけたときでは、プロンプトがちがうようです。(.bashrcを読み込まない?) (2) インタラクティブモードとはなんでしょう。 -i をつけたときとつけなかったときで、特に目に見えた違いはわからなかったのですが。。