ログイン時に,いつからか以下の画面が表示されるようになってしまった。16.04のログイン時にこのメッセージが出て,そこで起動が止まってしまう。OKを選択したら,きちんとログインができる。PCの起動時にOKを選択する必要があり手間だった。そこまで実害を感じなかったので,かれこれ半年ほど原因がわからず放置していた。18.04にアップグレードしたところ,この画面が出てもクリックできずGUIでログインできなくなってしまった。これは無視できないので,重い腰を上げて原因究明に乗り出した。手始めに既往事例を調査したところ以下がヒットした。Ubuntuどうやら,ログインシェルが標準出力に出力するとこのエラーが出るようだ。Ubuntuはログイン時に~/.profileの内容を読み込む。このファイルはUnix系OSが共通でログインシェルで読み込むため,シェルの共通設定などをいろいろ書いていた。このファイルの記述が原因だった。ファイルの内容を精査したところ,今回のエラー画面は以下のコードで再現できた。proceed?」の画面が表示される。18.04で再現確認できた。-xコマンドを実行し,それ以降のシェルの実行内容を標準出力に出力させていた。これにより,ログイン時やシェルの起動時に~/.profile内でどこが処理が遅いかを毎回確認していた。2行目のPS1=はコマンドプロンプトの表示内容の桁数をカウントして,余白が20桁以下の場合に,プロンプトを改行するという処理を実装していた。$HOST:の直後に$(pwd)などを配置するが,エラーの再現には不要だったので省略している。参考までに,上記ファイルでログインすると以下のメッセージが出力される。-xで標準出力を出すだけであれば,今回のエラー画面は表示されないことだ。似たようなコマンドでログイン時に標準出力に出力すると以下の画面が表示される。feasible.~/.profile内で標準出力へ出力時のエラー画面よくわからないが,2行目のPS1=の処理が何かまずかったようだ。