終了スクリプトが作成されたとおりに機能しません。

終了スクリプトが作成されたとおりに機能しません。

私はLinuxに初めて触れました。私は次のようにコンピュータをシャットダウンする非常に簡単なスクリプトを書いています。

!#/bin/bash
echo "Hello World"
sudo shutdown

このコードを実行すると、スクリプトがスケジュールを提供しなくても、通常1分ほど早く終了スケジュールが開始されますが、システムをすぐに終了したいと思います。これが私のスクリプトまたはLinuxの機能であるか、スクリプトがすぐに終了するように変更するにはどうすればよいかを知りたいです。

ベストアンサー1

スクリプトで解決する必要がある3つの問題があります。

最初はshebang行のタイプミスです。これらの行の正しい構文は、#!/path/to/interpreter -オプションと引数です。最初の行の最初の文字で始まり、改行文字で終わる必要があります。bashは許可されているスクリプトシェルなので(この場合は少し過剰になる可能性があります)、最初の2文字を変更した後は許可されますが、役に立つ可能性があるいくつかのオプションがあります。-eエラーが発生した場合は、終了するとより良いスクリプトを作成し、シェルが-x各ステップで何をするかを示しますが、この場合は問題をキャッチできません。

終了時に最もよく犯される2つの間違いは終了時間と終了タイプですが、両方を試したようです。シャットダウンの主な機能は、ワンタイムシャットダウンです。絶対時間、相対時間、を指定する3つの方法がありますnow。 Now はエイリアスとして+0これから 0 秒を意味します。これはシングルユーザーシステムで最も一般的なケースです。 Shutdownのもう1つの主な機能は、一時停止、電源オフ、再起動など、さまざまな種類のシャットダウンをサポートすることです。ただし、シャットダウンは自動電源管理より優先されるため、デフォルトではシングルユーザーモードに設定されます。過去には、すべてのユーザーを追い出した後、実際にシステムの電源を切る前にファイルシステムを同期、マウント解除、確認することができました。マルチユーザーモードに戻す前に他のメンテナンスを行う場合にも便利です。最近はほとんど使用されていませんが、まだデフォルト設定です。マニュアルページには、終了の種類を選択する方法が記載されています。

また、rootユーザーの場合はsudoが必要ないため、rootユーザーの場合はスキップできます。

おすすめ記事