私のubuntu VMはTTYでcron
ジョブを実行しません(ログインしてユーザーの環境からコマンドを実行した場合でも)。
このため、cronはtmux
またはscreen
を実行できず、プログラム(具体的にはこの場合はrtorrent
)をシンプルでアタッチ可能な方法でバックグラウンドで実行できません。
起動時にrtorrent
のようなプログラムを実行し、任意の端末からプロセスを簡単にアタッチ、デタッチ、および強制終了できるようにするための最良のアプローチは何ですか?
rtorrent &
と同等のものを実行するだけで実行できると思いますが、これはscreen/tmuxほど便利ではありません。
-d
オプションをtmux new
と一緒に使用すると、ttyに接続したり、ttyを必要としたりしません。 man tmux
から:
new-session [-AdDEP] [-c start-directory] [-F format] [-n window-name] [-s session-name] [-t group-name] [-x width] [-y height] [Shell-command] (alias: new)
Session-nameという名前で新しいセッションを作成します。
-d
が指定されていない限り、新しいセッションは現在の端末に接続されます。 [...]
例えば:
tmux new -d -s rtorrent rtorrent
これにより、「rtorrent」という新しいtmux
セッションが作成され、その中でrtorrent
が実行されます。
実行環境を正しくセットアップするには、おそらく~/.tmux.conf
を構成し、スクリプトを実行してrtorrent
(裸のrtorrent
コマンドだけではなく)を開始する必要があります。
Cronジョブを所有するユーザーは、次の方法でいつでもセッションに接続できます。
tmux attach -t rtorrent
Screenに相当するものは
screen -d -m -S rtorrent rtorrent
cronジョブとscreen -S rtorrent -rd
から後で添付します。