これは root として作業するときに注意を怠った場合に終わりました .
Linux 上の SQLCLR が、Windows の場合のように app.Config ファイルにアクセスできるかどうかを調査していました (残念ながら、そうではありません:Linux 上の SQL Server 2017 は、アプリ構成ファイルが存在する場合は無視し、存在しない場合はロックアップすることがあります)。 't (SQLCLR) ) であり、特定の状況下で SQL Server が完全にロックアップすることがありました。それが起こったとき、それを止める唯一の方法は kill -9 をすることでした sqlservr に .サービスを再開するときの 1 つで、/opt/mssql/bin/sqlservr を直接実行しました。 そして root として働いていたとき (したがって、プロセス自体は root によって所有されていました ).
sqlservr を実行してもすぐにエラーが発生したり、おかしな動作が発生することはありませんでした。 root として 、ただし、VM が再起動し、SQL Server が適切に起動しようとしたとき (つまり、mssql として実行中) ユーザー)、それは最初に行き詰まったときです.
sqlservr を実行することの直接的な結果は root として /var/opt/mssql/log/errorlog ファイル (および SQL Server の起動時に作成されるその他のファイル) は root が所有していました (理にかなっています)。
そして、これらのファイルが root によって所有されていることの直接的な結果 プロセスが適切に開始されたときです( mssql など) )、次に mssql ユーザーには、ファイル名を .1 で終わるように変更する権限がありません (そして、デフォルト トレースなど、その他のファイルで発生する必要があるものはすべて)。ただし、権限エラーが発生するのではなく、永遠にハングアップします。
主な修正は、単純に次を root として実行することです ( mssql として実行しようとはしていません )。次の両方のコマンドの場合、sudo 現在 root として機能していない場合にのみ必要です それに続くコマンドを as 実行するので root (または -u username を指定した場合は他のユーザー )、root の入力を求められた後 パスワード。
sudo chown -R mssql:mssql /var/opt/mssql
二次的な修正 (これが再び起こらないようにするため) は、SQL Server を適切に起動することです;-):
sudo systemctl start mssql-server