問題タブ [systemd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
daemon - ウォッチドッグのsystemd再起動サービスは、以前にハングしたインスタンスを終了します
ウォッチドッグの失敗時にサービスを再起動するように systemd サービス構成をセットアップしようとしています。アプリケーションが時間内に sd_notify() を呼び出さない場合、systemd は新しいインスタンスを生成します。ただし、前のインスタンスは強制終了されません。しばらくすると、アプリケーションのインスタンスが多数実行されます。
これは私のサービスファイルの一部です:
ウォッチドッグで失敗したインスタンスを強制終了するように systemd を構成するにはどうすればよいですか?
すでにマニュアルページを読みましたが、役に立ちませんでした。
Restart=on-failure
デフォルトでハングしたプロセスを再起動すると思いました...
sudo - 呼び出し元のユーザーがログアウトしても sudo セッションを維持するにはどうすればよいですか?
最初にコマンドを呼び出したユーザーがログアウトした場合でも、実行を継続する必要がある実行時間の長いsudo
(または) コマンドがあります。su
sudo sleep 60 & killall --user $USER
それは私の tmux/zsh プロセスの子であるため、明らかにスリープコマンドも強制終了します。
そのコマンドを実際のルートプロセス階層に「持ち上げる」にはどうすればよいですか? または、他の方法でログアウトを持続させるにはどうすればよいですか?
docker - Fleectl ジョブは既に存在します
Docker コンテナーを CoreOS にデプロイする際に問題が発生しました。次のことに注意してください
サービス(コンテナ)はそこにありませんが、送信を実行すると、そこにあると表示され、破棄されます。送信を実行してから開始できますが、同じエラーが発生し、送信を再度破棄しますが、同じ問題が発生します。
誰が何が間違っているのか考えていますか?
qt - タッチ スクリーンを使用して BeagleBone から Qt アプリを起動する
他の多くの人と同じように、BeagleBone Black の起動時に直接実行される Qt アプリケーションが必要です。次のような他のトピックからの回答を使用します: Beaglebone Boot to Qt App ; 組み込み Linux デバイス (Beaglebone Black) の起動時に QT アプリケーションを開始する
私は Angstrom 2012-09-12 の BeagleBone Black revC を持っています。
次のサービス設定を使用して、起動時にアプリケーションを起動することができました。
しかし、私のアプリケーションはタッチ スクリーン (4DCAPE-43T) を介したタッチ インターフェイスを使用していますが、まったく機能しません。systemd がアプリケーションを実行するときに tslib ライブラリがロードされていないようです。この行をサービス [Unit] に追加すると、次のようになると推測しました。
その後、サービスはアプリケーションをロードせず、パスが存在しないためエラー メッセージを表示します。
また、タイプをシンプルからアイドルに置き換えると、BeagleBone がアイドル モードのときにのみアプリケーションがロードされるため、ほとんどの場合、すべてのブート プロセスの最後に動作することがあります。
そのため、tslib のロードが完了した後にアプリケーションの実行を保証する方法を見つけようとしましたが、tslib をロードしているものを見つけることができませんでした (サービスではありませんか?)。では、実行する前にファイル「/dev/input/touchscreen0」が既に存在することを確認するにはどうすればよいですか?
ありがとう!
PS:環境変数の定義のために、私のプロファイルファイルが私のサービスで言及されているので、ここにあります:
EDIT1: サービスファイルを次のように変更:
そして、アプリケーションの実行中にステータスを確認した後、次の出力が得られます (タッチ機能が動作していない場合)。
EDIT2:命題を組み合わせていくつかのテストを行った後、ほとんどの場合うまくいくと思われる中間的な解決策を見つけました。ただし、タッチ機能がまだ機能しない場合があります。私はsystemdで他の問題を抱えているので(この投稿を参照)、それを脇に置きます。
これが私のほとんど機能するサービスファイルです:
embedded-linux - BeagleBone Black + PowerCape + LCD4 cape = 起動が遅い
BeagleBone Black (BBB) を使用した組み込み製品のプロジェクトに取り組んでいます。また、情報を表示して入力するためのタッチ スクリーンも必要です。USB に Web カメラを追加するには 5v 電源も必要なので、ボルテージ ブースターのない BBB の内蔵バッテリー機能を使用できませんでした。私がやりたいことができるマントを見つけました: AndiceLabs の PowerCapeです。画面には主にcircuitcoの LCD4 を使用していますが、 4D systems の 4DCAPE-43Tも使用していますが、これはまったく同じだと思います。両方で問題が発生します。
そのため、すべてが正常に機能しており、すべてが組み込まれていることは非常に素晴らしいことです。しかし、理由は不明ですが、PowerCape を追加すると、起動時間 (電源ボタンを押して LED が点灯し始めてからコンソールが画面に表示されるまでの時間) が 20 秒から 1 分 30 秒に短縮されました。そして、高速ブートを実行する機能を備えたシステムを入手できないことは、非常にイライラします。
OS:
Angstrom 2013-09-12 linux kernell 3.8.13クリーン
インストールで、Qt ライブラリのみが追加されています。デスクトップ環境が無効になっています。
起動時間:
BeagleBone Black のみ: ~20 秒
BeagleBone Black + LCD4: ~20 秒
BeagleBone Black + LCD4 + PowerCape: 1 分 30 秒
PowerCape の有無にかかわらずいくつかのログを生成し、AndiceLabs に連絡しました。彼らの意見から、PowerCape は起動時間に影響を与えるべきではありません。バレル ジャックの電源との違いはケープ ROM、INA219、および I2C バス上の AVR だけであるためです。彼らは、問題は「ターゲット マルチユーザー」と「ターゲット グラフィカル インターフェイス」の間で一時停止しているように見える systemd にあると考えています。私はsystemdについていくつかの調査を行い、それを理解しようとしました(私はすでにここで別の問題のためにそれと戦っています)が、それは本当に混乱していて、見るべきか本当にわかりません.
ログ:
PowerCape なし PowerCape あり PowerCape なし
で
のみ表示される
ログ PowerCape でのみ表示されるログ
bash - redis-cli subscribe の stdout を読み取り、メッセージに対して bash コマンドを実行します
redis-cli
サブスクライブの stdout を読み取り、メッセージが受信されたときにメッセージ値とともに何かを実行する bash スクリプトが必要です。
redis-cli
サブスクライブは、好きなように引数として渡すことができます
しかし、メッセージを解析できるように、その stdout を何かにパイプする必要があります。ループを使おうと思っwhile read line; do
たのですが、1 つの redis メッセージで 3 行かかります。
アップデート
私の最終的な目標は、etcd にキーを設定して新しい redis マスターを発表することです。switch-master
これは、redis センチネルでチャネルにサブスクライブすることで達成できるはずです。[1] そのメッセージの値は次のようなものである必要があり、それを etcd の値として<master name> <oldip> <oldport> <newip> <newport>
設定したいと思います。newip
そのメッセージが受信されたときに実行したいコマンドはetcdctl set /redis/master $NEWIP
node.js - systemd スクリプトを使用した Sails.js
SSHセッションが終了したときにサービスを実行し続けるために、現在nohupで実行されているSails jsアプリケーションをサーバー上で動作させることができました。
明らかに、これは非常に堅牢なソリューションではありません。アプリがクラッシュしたり、サーバーがリセットされたりするとどうなりますか? 私はFedoraを使っているのでsystemdを使っています。
これが私がこれまでに持っているものです。
サービスは正常に開始されますが、スクリプトは構成ファイルを認識しないため、Sails のポート 1337 がデフォルトになります。サーバーのそのポートに移動しても機能しません。
また、帆の設定ファイルで設定されたポートを使用してnginxを設定しましたが、これは正常に機能しますが、これが違いを生むとは思いません。
python - Python スクリプトからの systemd ジャーナルの読み取り
systemd ライブラリ http://www.freedesktop.org/software/systemd/python-systemd/journal.htmlを使用して、Python でこのシェル コマンドをエミュレートしようとしています。
私は実際にこのコマンドをエミュレートしようとしていますが、Python 内です。
Python でジャーナル実行可能ファイルを呼び出してこれを行っている人を見てきましたが、これは非常に悪い方法です。
上記のリンク先のドキュメントに基づいて、この簡単なスクリプトを作成しました
ここにはいくつかの問題があります
- ログは約 5 日前から始まっているようです。これは、seek_tail が機能していないように見えることを意味します。
- ここにたくさんのがらくたがあります。質問の冒頭で与えられたjournalctlコマンドから取得したデータと一致させるために使用する必要がある特定のフィルターはありますか?
理想的には、一連のフィルター/一致に基づいてこのジャーナルをフォローし、コマンド「journalctl -f」をエミュレートしたいのですが、最初にこの問題を解決する必要があります。私はこのようなものになりたいのですが、うまくいきません。
neo4j - Arch Linux で Systemd を使用して Neo4j を実行するとエラーが発生します
arch Linux セットアップに neo4j をインストールしましたが、サーバーを手動で起動できます ( sudo neo4j start
)。ただし、を使用して起動しようとするとsystemctl start neo4j
、
エラーメッセージの提案はどちらも役に立ちません。/usr/lib/systemd/system/neo4j.service があります:
私はneo4jとルートの間でユーザーを変更しようとしましたが、元々はLimitNOFILEをコメントアウトしていませんでした. このセットアップは AUR で言及されていますが、うまく動作しません。どんな助けでも大歓迎です!