emacs で commandline から daemon が実行されているかを確認したい


普段開発に emacs を利用しています。 .emacs.d/init.el の中で、起動された emacs は server
をスタートさせるようになっています。そして、 emacs (サーバー) プロセスを一つ起動した後に、それ以降は emacsclient
でもってファイルの編集などを行っています。

emacs と emacsclient
の両方を使い分けて普段作業しているのですが、これは少し面倒なので、状況に応じて適切な方のコマンドを実行するシェルを記述しようと思いました。

### 質問

  * コマンドライン上で、 emacs サーバーが今起動しているかどうかを判定する方法はありますか?




@metropolis さんのコメントを参考に、次のようなスクリプトを記述しました。

[code]

    #!/bin/sh
    
    server_running_p() {
       emacsclient --eval '(server-running-p)' >/dev/null 2>&1
    }
    
    if server_running_p
    then
        exec emacsclient -nw "$@"
    else
        exec emacs -nw "$@"
    fi
    
[/code]




@metropolis さんのコメントを参考に、次のようなスクリプトを記述しました。

[code]

    #!/bin/sh
    
    server_running_p() {
       emacsclient --eval '(server-running-p)' >/dev/null 2>&1
    }
    
    if server_running_p
    then
        exec emacsclient -nw "$@"
    else
        exec emacs -nw "$@"
    fi
    
[/code]

