sh-4.4$デフォルトのシェルターミナルにどのように再度ログインしますか?

sh-4.4$デフォルトのシェルターミナルにどのように再度ログインしますか?

これを開くと、デフォルトのgnome-terminalBashシェルが表示されるのではなく、次のようになります。

sh-4.4$

DISPLAY=:0これを私のファイルに追加して以来、これが起こりcrontab -e始めました。これで、次のようになります。

DISPLAY=:0

0 0,6,12,18 * * * /usr/bin/gnome-terminal -e /home/orschiro/bin/updates.sh
0 0,6,12,18 * * * /usr/bin/gnome-terminal -e /home/orschiro/bin/rclone.sh

また、興味深い点は次のとおりです。

sh-4.4$ ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 18. Jun 10:30 /bin/sh -> bash

ここに画像の説明を入力してください。

答え1

私はこれがgnome-terminalcronjobで始まると仮定します。

内部でcronjobスクリプトを実行する必要はありませんgnome-terminal。これにより、gnome-terminalジョブを開くことができない場合、ジョブは失敗します(当時デスクトップを使用していない場合に発生する可能性があります)。

ただ使用

0 0,6,12,18 * * * "$HOME"/bin/updates.sh
0 0,6,12,18 * * * "$HOME"/bin/rclone.sh

ローカル電子メール転送が有効であると仮定すると、スクリプトのすべての出力が電子メールで送信されます。出力をログファイルに保存するには、リダイレクトを使用します。

0 0,6,12,18 * * * "$HOME"/bin/updates.sh >>"$HOME"/updates.log"
0 0,6,12,18 * * * "$HOME"/bin/rclone.sh  >>"$HOME"/rclone.log"

cronjobは通常、グラフィカルデスクトップ環境を介してログインしたときとは異なる環境で実行されます。まず、デフォルトのシェルがSHELL環境変数に設定されていない可能性があります。これがまさに(代わりにgnome-terminal実行される理由です。/bin/shbashsh はい bashシステムにあるが)として呼び出されると、POSIX互換モードで実行されますsh

グラフィックスデスクトップ環境にログインしている場合は、gnome-terminal通常どおり開くとデフォルトのシェルが提供されます。そうでない場合は、gnome-terminal-servercronジョブによって開始されたプロセスが実行中であるためです。を再起動するか、このプロセスを終了してくださいpkill -f gnome-terminal-server

また、見ることができます以下はJdeBPが投稿したコメントです。

関連情報