問題タブ [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.
proxy - インターネット接続が確立された後に systemd 起動デーモン
オンラインでのみ開始できる Web プロキシがあります。そうしないと、エラーで終了します。そのプロキシをデーモン化するために、次のsystemd
サービス ファイルを作成しました。
サーバーがインターネットに接続されている場合、このサービス ファイルはプロキシを正常に起動できますが、おそらくインターネット アクセスとの接続がないため、システムの起動時に機能しません。そのため、このデーモンを起動する前に、接続が確立されていることを確認するために systemd が必要です。
php - systemd のジャーナルからプログラムでメッセージを読み取る
更新、2013 年 9 月 12 日:
私はもう少し深く掘り下げました.systemd
そしてjournal
、私はこれに出くわしました.それは次のように述べています:
systemd-journald
受信したすべてのログ メッセージをAF_UNIX SOCK_DGRAM
ソケット/run/systemd/journal/syslog
(存在する場合) に転送します。これは、データをさらに処理するために Unix syslog デーモンによって使用される可能性があります。
マンページに従って、下にsyslogも配置するように環境をセットアップしました。それに応じてコードを調整しました。
write
これは明らかに、ソケットの変更のみを表示 (選択) します。まあ、ここで何かが間違っているかもしれないので、私はそれらから読み込もうとしましたが、運がありません(また、あるべきではありません):
[Thu, 12 Sep 2013 14:45:15 +0300] Changes: 1.
[Thu, 12 Sep 2013 14:45:15 +0300] -------
[Thu, 12 Sep 2013 14:45:15 +0300] Read: 0.
[Thu, 12 Sep 2013 14:45:15 +0300] Write: 1.
[Thu, 12 Sep 2013 14:45:15 +0300] Except: 0.
[Thu, 12 Sep 2013 14:45:15 +0300] 11: Resource temporarily unavailable
さて、これは私を少し狂わせます。syslog
ドキュメントには、これが可能であると書かれています。コードの何が問題になっていますか?
オリジナル:
単純に、次の方法でプロトタイプを作成しました。
しかし、これは間違っていると感じ、システム リソースを大量に消費します。その後、journald にソケットがあることがわかりました。
私は接続して読み込もうとしました:
指定されたソケット。
では/var/run/systemd/journal/socket
、socket_select
0 の変更が表示されます。I always (すべてのループ)では/var/run/systemd/journal/stdout
、0 バイトのデータで 1 つの変更を取得します。
これは私の「読者」です:
読み取りソケットにデータがないため、何か間違ったことをしていると思います。
質問、アイデア:
私の目標は、メッセージを読み取り、それらのいくつかに対してcallbackを実行することです。
ジャーナルメッセージをプログラムで読む方法の正しい方向を教えてもらえますか?
c - Lighttpd CGI コマンドによってトリガーされたサービスまたは再起動を再起動するにはどうすればよいですか?
現在 Arch Linux ARM ディストリビューションを実行している Olinuxino Maxi ボードで実行するアプリケーションを作成しました。私のやや単純なアプリケーションは、次の 2 つの部分に分かれていると考えることができます。
RS232 と TCP/IP 間の通信を実行し、Linphone ライブラリを介して VOIP 通話を開始/受信するプログラム。このプログラムがどのように動作するかは、
.conf
ファイルを介して構成されます。このプログラムは、起動時に起動します。.service
ファイルを作成し、systemctl
/を使用して有効にすることで、起動ブートを実現しましたsystemd
。Lighttpd 経由でアクセスされる単純な Web ページ。CGI ページは C で書かれています。このページは、ユーザーが
.conf
簡単なフォームでファイルを編集する手段を提供し、メイン プログラムの動作を構成します。
上記のすべてが機能するようになりました。.conf
私が抱えている特定の問題は、ユーザーが Web ページを介して新しい設定を送信したときに、サービス プログラムを再起動する (ファイルから再構成する) 方法に関連しています。私はかなり経験豊富な C プログラマーですが、Linux での開発と一般的な Linux 管理は、私にとってかなり新しい分野であるため、この分野で立ち往生しています。
関連する場合は、ユーザーの設定方法などを含め、これをどのように設定したかについて少し説明します。
- アプリケーションの名前の新しいユーザーを設定しました。ユーザーapplication-nameと呼びます。
- RS232/TCP/IP/VOIP プログラムはフォルダにあります
/home/application-name/
。.conf
ファイルもここにあります。 systemd
起動時にプログラムを開始します。プログラムがルートとして実行されていることを理解しています。- Web/CGI コードは にあり
/home/application-name/web/
ます。Lighttpd 構成でエイリアスを設定しました。これは/cgi-bin/
ここを指し、機能します。 - 私が理解している Lighttpd サーバーは、ユーザー「http」として実行され、Web ページに喜んでアクセスし、POST データの送信時に、
../.conf
それに応じてファイルを編集します。.conf
Web サーバーがファイルを編集できるようにするには、chmod
そのファイルに他のユーザーへの書き込みアクセスを許可する必要がありましたが、これを行うためのより良い方法は、ユーザーを新しいユーザー グループに入れることapplication-name
だhttp
と思います (ありがたいのですが)これについてもアドバイス)。 - POST データの処理後、私の C CGI プログラムは
system()
、bash スクリプトを呼び出すためにも使用しますrestart_application.sh
。 - 内で、メイン プログラムを再起動するために を
restart_application.sh
呼び出しています。しかし、systemctl
それは機能しませんroot
..systemctl
したがって、主な質問は次のとおりです。
- プログラムを再起動するにはどうすればよいですか?
また:
- セットアップと Linux システム管理に関して、ここで絶対に恐ろしいことをしている場合は、ぜひ怒って叫んでください。
編集1:誰もがより良いアプローチを持っていない限り、基本的にbashファイル内で「sudo」するというここで提案されたアイデアを試してみることを考えています。
raspberry-pi - Raspberry Pi fhem Web インターフェイスに到達できません
今日、Raspberry Pi に Arch Linux をインストールし、fhem のセットアップを開始しました。yaourt を使用して fhem をインストールした後、fhem 構成をカスタマイズし、systemd *.service ファイルを作成し、以下を使用してサービスを開始しました。
次に、 systemctl status fhemを使用してサーバーのステータスを確認したところ、次の結果が得られました。
サーバーが動作しているように見えるので、デスクトップ PC に切り替えて、firefox を192.168.1.77:8083に向けて fhem Web インターフェイスにアクセスしようとしました。
それで、Raspberry Piにsshしようとしましたが、うまくいきました。fhem の Web インターフェイスに接続できなかった理由を知っている人はいますか? 以下の私の設定ファイルを見つけてください。
/etc/fhem/fhem.cfg
/etc/systemd/system/fhem.service
/etc/iptables/iptables.rules
c - systemd エラー ログ ドキュメントが必要です
arch Linux などの一部の Linux ディストリビューションでは syslog エラー ログの有効期限が切れているため、systemd でエラーをログに記録する方法を探していますが、それに関するドキュメントやリソースが見つかりませんでした。systemd のエラー ログについてご存知でしたら、ご協力をお願いします。
qt - Qt アプリへの Beaglebone ブート
私はたくさん検索してグーグルで検索しましたが、これを機能させることができません。
Beaglebone で Qt アプリケーションを起動したいです。ただし、GUI は正常に起動しますが、数秒で Angstrom ログイン画面が GUI を上書きし、バックグラウンドで実行されたままになります。
/etc/systemd/system で次のように systemd サービスをセットアップしました。
私はそれを有効にしました:
私はgdmを無効にしました:
After ステートメントを変更して、他のサービスが完了するまで待機する必要があるのではないかと思います。しかし、何?
よろしく、ジェームズ
service - systemd でカスタム ターゲットを有効化/起動しようとすると問題が発生する
Fedora 18 ですべてのパーソナル サービスをグループ化するターゲット ファイルを作成し、サービスをテストしてから個別に開始できますが、ターゲットを有効にしようとするとエラー メッセージが表示されます。
そしてここにターゲットコード:
そのメッセージの意味がよくわかりません。手がかりはありますか?