6

私が欲しいもの

私は、1 日の特定の時間帯にのみ仕事をするように強制する小さなアプリを開発しています。その日により効果的になるように、夕方には仕事をやめるように強制する何かが必要です。

特定の時間にマシンをシャットダウンする OS X 内のオプションは、簡単にキャンセルできます。また、後でいつでも再ログインできます。

未保存の作業があるかどうかに関係なく、アプリですべてのアプリケーションを終了させたいです。

私が試したこと

loginwindow プロセスを強制終了することを考えましたが、これによりデータが破損する可能性があることを読みました。

shutdown コマンドに出くわしました-すぐにシャットダウンするために sudo shutdown -h +0 を使用しています。これは単なるチケットのように見えますが、たとえばディスク ユーティリティが何らかのスキャンを行っている場合、データが破損する可能性があるのではないかと心配しています。

シャットダウン コマンドは安全ですか?

shutdown コマンドが破損を引き起こす可能性はありますか? それとも安全に使用できますか?安全にシャットダウンを強制するより良い方法はありますか?

4

6 に答える 6

3

AppleScript を使用してtell application "System Events" to shut down.

于 2009-11-15T19:25:26.220 に答える
2

shutdownコマンドは、実行中のプロセスに終了のシグナルを送信し、必要に応じてクリーンアップ作業を実行する機会を与えます。したがって、一般に、アプリケーションがこのシグナル(SIGTERM(inate))を受信すると、アプリケーションは終了して終了する必要があります。

Snow Leopard(10.6)のIIRC Appleは、fast-shutdown(または同様のもの)と呼ばれるものを追加しました。これは、正常であるとフラグが立てられたプロセスにSIGKILLシグナルを送信し、クリーンアップ作業の機会なしにそれらをシャットダウンします。これにより、シャットダウンが高速化されるはずです。デフォルトでは、アプリケーションは引き続きSIGTERMオプトインし、オプトインする必要がありSIGKILLます。そして、彼らは自分たちを「汚い」とマークすることができます。つまり、未保存の作業があり、強制的に殺されたくないということです。

したがって、ディスクユーティリティの実行中にシャットダウンすると、ディスクユーティリティの実行がすべて中止されますが、私見では、一般にデータの破損は発生しません。ただし、現在実行している操作によっては、ディスクイメージが不完全になったり、パーティションが半分フォーマットされたりする可能性があります。設定した作業時間の終わりが近づいていることがわかっている場合は、使用を控えたいと思うかもしれません。

シャットダウンをスケジュールするために使用cronすることは、指定された時間にシャットダウンを実行したい場合に実行可能なオプションです。ログイン後一定時間経過した後に発生させたい場合は、numberパラメータを使用してシャットダウンし、たとえば8時間後を指定できます。

于 2009-11-15T17:56:44.273 に答える
1

コンピューターのシャットダウンを定期的にスケジュールするための推奨される方法は、システム環境設定->[省エネ]パネルです。右下隅にある「スケジュール」ボタンをクリックします。残りは自明です...

于 2009-11-16T12:33:29.000 に答える
0

コンピューターを強制的にシャットダウンする (そして保存されていない作業を破棄する) ことは、私には良い考えとは思えません。仕事をやめるべき時を思い出させるために目覚まし時計をセットし、コンピューターが鳴ったらその場を離れる方が簡単で安全ではないでしょうか? (それが私がすることです。)

編集:それは私の意図ではまったくありませんでした。(私はあなたの質問やそのようなことをからかうつもりはありませんでした。)これがこの問題のより良い解決策になると思います:)

于 2009-11-15T19:44:23.600 に答える
-1

cron がコンピューターにインストールされている可能性がありますか? 素晴らしいです=)

于 2009-11-15T17:28:03.297 に答える