crontab @rebootでtmuxを起動し、bashを使用する方法は?

crontab @rebootでtmuxを起動し、bashを使用する方法は?

次のようにtmux-launching-scriptを実行するcrontabがあります。

-sh-3.00# crontab -l
@reboot /root/scripts/tmux_autostart.sh

どこ

#!/bin/bash
# setup tmux session

tmux new -d -s my_session

しかし、システムが起動すると通常のプロンプトは表示されませんが、シェル迅速:

-sh-3.00#

自分の設定にすでにこのエントリがある場合、これをbashに変更するにはどうすればよいですか?.tmux.conf

set-option -g default-shell /bin/bash

編集する

-sh-3.00# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

ベストアンサー1

あなたの@reboot仕事はルートのcrontabにあります。 crontabに設定された変数はそのcrontabにのみ適用されるため、crontabの設定は/etc/crontabrootのcrontabで実行される操作には影響しません。

Cronのデフォルトのシェルは、オーバーライドされない限り、環境変数が設定されること/bin/shです。だからTmuxは。SHELL/bin/shSHELL=/bin/sh

/bin/shバージョンがBash 3.00のようです。プロンプトは、bashがログインシェルで始まり、初期化ファイルが設定されていないことを示しますPS1(初期化ファイルがまったくない可能性があります)。

default-shellで設定すると、この変数は環境変数~/.tmux.confよりも優先されます。私はあなたがルートのホームディレクトリにSHELL表示されず、他の場所、おそらくあなた自身のホームディレクトリに表示されると思います。.tmux.conf

SHELL=/bin/bashルートのcrontabで設定するか、.tmux.confルートのホームディレクトリにファイルを書き込むかを選択できます。

おすすめ記事