
実際にはDebianではありませんが、Raspbian WheezyからRaspbian Jessieまでです。公式Raspbianフォーラムのいくつかのコマンドを使用してアップグレードしました。
Cat / etc / debian_version = 8.0。
問題は、サービスを再起動しても結果が表示されないことです。
アップグレード前(喘ぎ):
# service tor restart
[ok] cccc
[ok] ddd
# _
アップグレード後(Jesse):
# service tor restart
# _
すべての結果は/var/log/syslogに記録されます...このエントリをどのように復元できますか?ログに記録するのではなく、実際の結果を見たいです。
答え1
service
今、すべてがうまくいけば静かなsystemdによって処理されます。これを変える方法はないようです。レナルトTODOエントリを追加しました。詳細モードを追加すると、必要なものと同様の動作が復元されますが、3年後もまだそうです。ToDoリストに!
いつでも次のタスクを実行するようにシェル関数を定義できます。
service tor restart && echo '[OK]' || echo '[Failed]'
(tor
に置き換えて$1
コマンドから目的のメッセージに置き換えますecho
) ただし、複数のコマンドを実行するデバイスに関する詳細は提供されません。
systemctl status tor
はそのユニットの詳細な状態を示しているので、またはとstart
組み合わせることも別のオプションですrestart
。
答え2
多くのサービスエラー、一部のサービスは、サービスが開始されなくても常に成功を返します。なぜなら、systemdはサービス自体の代わりにある種のサービスマネージャを起動するからです。そして、サービスの状態を何度も信頼できない結果を得ます。 「スタートOK」、サービスが実際に実行されておらず、フィードバックもありません!だから問題はまだ解決されていません!ただし、Journal -xe を実行させるとこうするよりははるかに優れていますが、毎回実行して覚えなければならないので不足します。 – @ルチアーノ・アンドレス・マティーニ
「結果なし」は、操作が成功したことを意味します。これはUNIXのデフォルト設定です。たとえば、cp
orコマンドの動作方法は次のとおりです。rm
サービスが正しく作成されていない場合は、成功を返してすぐに失敗する可能性があります(たとえば、誤った設定を読んだ場合など)。これはサービスのバグです! sysvinitスクリプトが同様に動作する場合、同じ問題が発生します!systemd
この問題を解決する方法はありません。
デバイスが失敗した場合は、デーモンの最後の10行だけを見るためのヒントがあります。systemctl status
rootユーザーsudo
として実行します。またはユーザーをsystemd-journal
グループまたはadm
。
最後の10行以上が必要な場合は、journalctl -u tor -b
現在の開始のすべてを意味するを使用します。または、現在のブートプロセス中に何度も再起動する場合、journalctl -u tor --since=-1hour
または単に--since=-1h
。
デバイスが起動しないときにこれを実行するsystemctl
ことはすでに推奨されているようです。systemctl status
(残念ながら、systemctlは権限の問題に言及していません。)
systemctl
本当におすすめもしますjournalctl -xe
。個人的に私はこれが役に立たないと思います。 -x
ほとんどの場合、ノイズがたくさん追加されます。 -e
たとえば、stdout / stderrメッセージと明示的にエラーメッセージとして表示されていないすべてのメッセージをスキップします。 (申し訳ありませんが、stderrメッセージもスキップされます。この設定を変更するのは面倒です。stdoutを使用してstderr行を並べ替えることができますが、これはシェルスクリプトには望ましくない可能性があります。)
同様のユーザーの苦情がありますsystemd 問題トラッカーから、これには他の問題があるサービスが含まれます。 (またはその1つが次のようになります。意図的に長いネットワークタイムアウト後に「バックグラウンドで」失敗しました。繰り返しますが、これはサービスの作成方法であり、ユーザーを迷惑にするシステムではありません。)