仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

sshで直接コマンドを実行して、プロセスを残さない(?)

sshコマンドからプロセスが残るような(tail -fとか)コマンドを実行して、sshを終了(ctrl+c)させてプロセスが残っていた。
とくにmultitailで複数の「ssh host tail -f」を同時実行して、ログの数だけプロセスがホストに残ったり。
一度リモートでログインしてから実行する……という真面目な方法で回避していたけど、ログの監視だけとか連日だったので、ちゃんと調べてみた。
で、「ssh -t」で強制的に仮想端末(疑似tty)を割り当てれば、ローカル側の制御端末から、ctrl+cでプロセスをちゃんと終了できる。
↑ちゃんと理解できてないから、あやふや

#!/bin/sh

SSH="/usr/bin/ssh"
SRVTAIL="/usr/bin/tail"
HOST="hoge"
LOG="/var/log/error-log"
LINE=100

$SSH -t $HOST "${SRVTAIL} -n ${LINE} -f ${LOG}"

とか

#!/bin/sh

SSH="/usr/bin/ssh"
HOST="hoge"
SRVFREE="/usr/bin/free"
INTERVAL=5

$SSH -t $HOST "${SRVFREE} -m -s ${INTERVAL}"

ttyとか、ぜんぜん理解できてない……