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

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

### 質問

  * コマンドライン上で、 emacs サーバーが今起動しているかどうかを判定する方法はありますか?
CC BY-SA 3.0
2018-02-06T02:49:37.630
41498
2018-02-06T04:40:19.570
754
question
emacs
emacs で commandline から daemon が実行されているかを確認したい
@metropolis さんのコメントを参考に、次のようなスクリプトを記述しました。

```

    #!/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
    
```
CC BY-SA 3.0
2018-02-06T04:40:19.570
41502
2018-02-06T04:40:19.570
754
41498
answer