回答:
私はUbuntuでそのようなプロファイルの概念に出会ったことは一度もありません。ですから、すぐにはこれができないと思います。
私はこれを仮定するのが間違っているかもしれません、それはいいことです。しかし、これを実行するためのアプリがなく、これを設定することを強く望んでいると仮定して、今ここでそれを取り上げます。
私はあなたがGnomeを走らせているという仮定のもとにこれを書くつもりです。他のデスクトップまたはコンソール環境にいる場合でも、基礎となるプロセスフローは有効のままです。
Gnomeでは、システムの振る舞いのいくつかの側面を設定することができます。 システム>設定>パワー管理 。これは gnome-power-preferences そしてそれは gnome-power-manager デーモンプロセス。 GNOMEプロジェクトのページから私たちはそれを知っています gnome-power-manager ラップトップがバッテリ電源で動作しているかどうかを知るためにHALに依存します。
だから、起動する GNOMEデバイスマネージャ HALが知っていることを見るために。のエントリを探す 電池 。要約タブしか表示されない場合は、有効にします。 表示>デバイスプロパティ 。うん、私たちが必要とする2つのキーがあります。 battery.rechargeable.is_dischargeging そして battery.rechargeable.is_charging
これで、必要なものがわかりました。コマンドラインからこれにアクセスする方法を見つけなければなりません。 HALには、この情報にアクセスするためのコマンドラインツールが付属しています。初めて走る
ハルデバイスもっと少なく
そしての検索 battery.rechareable.is_discharging キー。バックアップして、あなたのバッテリー情報を詳述したブロックを取得します。
56: udi = '/org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0'
linux.subsystem = 'power_supply' (string)
info.capabilities = { 'battery' } (string list)
info.subsystem = 'power_supply' (string)
info.product = 'DELL CC1546' (string)
info.udi = '/org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0' (string)
battery.type = 'primary' (string)
battery.reporting.technology = 'Li-ion' (string)
battery.technology = 'lithium-ion' (string)
battery.model = 'DELL CC1546' (string)
battery.vendor = 'Panasonic' (string)
battery.voltage.design = 11100 (0x2b5c) (int)
battery.voltage.unit = 'mV' (string)
battery.reporting.design = 4700 (0x125c) (int)
battery.reporting.unit = 'mAh' (string)
battery.serial = '1076' (string)
battery.present = true (bool)
battery.voltage.current = 12712 (0x31a8) (int)
battery.reporting.rate = 2765 (0xacd) (int)
battery.is_rechargeable = true (bool)
battery.rechargeable.is_charging = true (bool)
battery.rechargeable.is_discharging = false (bool)
battery.reporting.current = 3407 (0xd4f) (int)
battery.reporting.last_full = 3963 (0xf7b) (int)
battery.charge_level.current = 37817 (0x93b9) (int)
info.parent = '/org/freedesktop/Hal/devices/computer' (string)
linux.sysfs_path = '/sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0' (string)
battery.charge_level.design = 52170 (0xcbca) (int)
battery.charge_level.percentage = 85 (0x55) (int)
battery.remaining_time = 723 (0x2d3) (int)
battery.charge_level.rate = 30691 (0x77e3) (int)
battery.charge_level.last_full = 43989 (0xabd5) (int)
info.category = 'battery' (string)
linux.hotplug_type = 2 (0x2) (int)
に注意してください ウディ デバイスの。今、あなたが使用したいプロパティを問い合わせます。 hal-get-property コマンド:
$ hal-get-property --udi /org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0 --key "battery.rechargeable.is_discharging"
true
これで、バッテリーの状態にアクセスする方法がわかりました。これをデーモンのようなスクリプトに入れます。以下は、ポーリング間隔を最初のパラメータとする基本的なテンプレートです。エラーチェックやその他の便利な構文で、気軽に楽しめます。
#!/usr/bin/env perl
my ($sleep_duration) = @ARGV;
print "Sleep:$sleep_duration\n";
do{
my $status = qx(hal-get-property --udi /org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0 --key "battery.rechargeable.is_discharging");
if ($status =~ /true/)
{
print "On battery power\n";
# shut down apache
# shut down mysql
# shut down postgresql
}
sleep $sleep_duration;
} while (true);
スクリプト内では、mysqlなどを正常にシャットダウンするために起動スクリプトを使用する必要があります。
sudo /etc/init.d/mysqld stop
どうすればこれを改善できますか?しばらくこれを実行してすべてのキンクを解決したら、これを起動時に起動するサービスにします。この答えをチェック ここに 起動時に自動的に起動するスクリプトを追加する方法については。
そうしないことにした場合は、これをチェックしてください。 質問 このスクリプトにroot権限を必要とするコマンドを実行させる方法については、を参照してください。
私はあなたの質問の一部にしか答えていないことを私は理解していますが、あなたは同様の方法で無線セクションを組み込めるはずです。ワイヤレスが無効になっていることを理解するには、HALを使用してください。
ネットに接続しようとするすべてのプロセスをどのようにチェックして無効にするかは、私にはよくわかりませんが、次のコマンドを実行すると役立つことがあります。
# list all processes using port 80
lsof -i tcp:80
#list programs connected via tcp
#include -u to include udp connections
sudo netstat -ntp
laptop-mode-tools
あなたが求めていることをすることができます。
/etc/laptop-mode/conf.d/start-stop-programs.conf The start-stop-programs module allows you to start or stop programs when the computer switches to a different power state. CONTROL_START_STOP If this option is enabled, laptop mode tools will automati‐ cally start and stop daemons or other programs for you. The actual configuration of which daemons are to be stopped/started is done by placing links to the daemons’ init scripts in the following directories: /etc/laptop-mode/batt-start /etc/laptop-mode/batt-stop /etc/laptop-mode/lm-ac-start /etc/laptop-mode/lm-ac-stop /etc/laptop-mode/nolm-ac-start /etc/laptop-mode/nolm-ac-stop As you have probably guessed, the directories of the form "X- stop-daemons" should contain init scripts of daemons that you want stopped in mode X, while the directories of the form "X- start-daemons" should contain init scripts of daemons that you want started in mode X. Of course, it is possible to put in your own handling of modes as well: the only requirement on the scripts in the directories is that they handle the "start" and "stop" commands, like init scripts usually do. The ordering of the script handling is as follows. When a mode is entered, the actions of the previous mode are undone, in reverse order. This means that if the previous mode had done "daemon1 stop", "daemon2 stop" and "daemon3 start", then the undoing actions will be "daemon3 stop", "daemon2 start", "daemon1 start". After that, the stop-scripts for the new mode are called, and then the start-scripts are called. Please note that there is no detection of commonalities between modes at this point, i.e., if the mode you’re coming from and the mode you’re going to both specify that a daemon "X" should be stopped, then the daemon will be un-stopped (that is, started) while leaving the previous mode, and then stopped again. BATT_STOP BATT_START LM_AC_STOP LM_AC_START NOLM_AC_STOP NOLM_AC_START These options allow you to stop services (through their init scripts) in certain power states. Specify a space-separated list of service names in these options. These services are started/stopped together with the files from the directories mentioned above.
設定ファイルからその主な機能(HDDの回転)を無効にすることは可能です、それはまだ他のアクションを実行します。
このコマンドを使用して、サービスを停止または開始することができます。
sudo /etc/init.d/'preferred services' stop|start|restart