問題タブ [daemons]

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.

0 投票する
2 に答える
976 参照

python - sh スクリプト (etc/init.d/skeleton から作り直したもの) から python に引数を渡す

私にはスクリプトがあり、Python プログラムに引数を渡す必要があります。私は引数を取ります:

$DAEMON は、.py ファイルへのパスです。このような数値引数を渡す必要があります

そして、この番号を sleep.py に渡す必要があります。sleep.py のコード:

n = 10 (コンソールから渡された引数) を作成するにはどうすればよいですか?

0 投票する
2 に答える
1121 参照

unix - Golang のティッカーとデーモン

Ticker を使用して、実行時間の長いデーモン プロセスの正常な終了を実装することは可能ですか? ここで他の関連スレッドを読んで、メモリリークを避けるために常にチャネルを閉じる必要がありますが、これをデーモンモードで実行すると (daemonize を使用て golang の外部でデーモン操作を処理するとしましょう)、実際には方法がありませんプロセスが終了する前に集合的なクリーンアップを行うため。何か不足していない限り、Golang でこれを行う代替/より良い方法があるかどうかを尋ねるためにここにいます

0 投票する
0 に答える
5112 参照

linux - Ubuntu で systemd サービス デーモンを実行できない (Upstart に切り替える方法、または更新されたディストリビューションがあるか)

注: サーバーを管理したり、Linux を深いレベルで使用したりする実際の経験がないため、知識と理解はかなり限られています。本質的に、私はそれを翼にしています。

完全なコード例については、https ://github.com/Integralist/Vagrant-Examples/tree/master/nodejs を参照してください。


これは 2 つの部分からなる問題です。

  1. 共有ディレクトリをマウントできない
  2. systemd利用できないサービス

NodeJS アプリケーションを起動するサービスを作成しようとしていますが、systemctlインストールした Ubuntu のバージョン ( https://vagrantcloud.com/ubuntu/trusty64 ) では利用できないようです。

これが私のものVagrantfileです:

以下は、ファイルsetup.shを作成するプロビジョニング スクリプトの内容です。.service

しかし、実行するvagrant upと、次のエラー出力が表示されます。

したがって、私の最初の問題は、共有フォルダーをマウントできないように見えることです。

また、もともと私のプロビジョニング スクリプト (our-node-app.serviceファイルを作成した後) では、次のようになります。

これをプロビジョニング スクリプトに追加して実行するvagrant provision --provision-with shellと、次の出力が得られます。

systemctlこれは、コマンドが使用できないという問題を発見した場所です。

また、プロビジョニングスクリプトを変更して、代わりに...

...私は使うだろう...

これは、Ubuntu がサポートしていないことをどこかで読んだことがsystemdあり、その代わりに、upstartすべてのサービスを起動するために呼び出されたものを使用していたためです。当時は、他のコマンドを使用して、スクリプト自体を同じに保つことができると想定していました (そうではないようです)。

しかし、その変更は、私のサービスが認識されなかったことを示すだけでした:

その後、結局、 Ubuntu がこのフォーマットに移行することを発見しsystemdました。しかし、これは 2014 年 2 月に発表されたので、最新の Ubuntu は今頃には切り替えられていると思っていたでしょう (または、それは私が馬鹿であり、評価していないだけなのでしょうか)。そのような変更にかかる時間)。

このUpstart形式を使用する必要があると考えて、これを読み始めましたsystemd、悲しいことに、スクリプトをUpstart形式に変換する方法を見つけることができませんでした.


これは私に質問を残します: ここに他の誰かがこの問題を抱えていましたか? もしそうなら、彼らはどのようにそれを解決しましたsystemdか?

systemdスクリプトを Upstart 形式に変換する方法に関するアドバイス (または適切なリソース) はありますか?

この件に関する助けをいただければ幸いです。冒頭で述べたように、私はシステム/サーバーの運用担当者ではないので、ここで説明します。

ありがとう。

アップデート

これを見つけたのですがsystemdinit.dとの違いを誤解していたようですupstart。とを改善systemdした新しいシステムも同様です。init.dupstart

systemdにリンクされている記事では、一緒にインストールしupstartてから に切り替える方法について説明してsystemdいますが、VM をマウントしようとしてもエラーが発生しますか?

レポコードを更新しました。

0 投票する
0 に答える
218 参照

python - Python デーモンのステータスが不明です

チュートリアルでpython デーモンを作成しましたが、チュートリアルの例と同じように実行されています。しかし、問題があります:

の出力はservice --status-all言う:

[ ? ] テストデーモン

これらのエラーと警告が何であるかを調べたり、デーモンのステータスを修正して、次のようになるように手伝ってくれる人はいますか。

[ + ] テストデーモン

0 投票する
0 に答える
56 参照

xcode - MacOSX ランチ デーモン

ユーザーが手動で削除するまで保持する必要がある仮想フォルダーをシステムに作成しています。これは仮想フォルダであるため、システムの電源を切るか再起動すると、自動的に削除されます。

したがって、それを永続化するために、システムの起動時に実行されるデーモン/起動エージェントから実行しようとしています。このために、仮想フォルダーを作成するだけのコードを分離し、コマンドラインツールテンプレートを使用して別の Xcode アプリケーションとして作成し、その UNIX 実行可能ファイルを LaunchAgents/LaunchDaemons に追加して、システムが再起動するたびに実行されるようにしました。

私の場合、仮想フォルダーの作成には、実際には getchar() 関数を使用して実行されるプロセスを保持する必要があります。Xcode 経由でビルドすると、プロセスは getchar() で停止し、仮想フォルダーが適切に作成されます。今、私はその実行可能ファイル(unix実行可能ファイル)を取得し、それをダブルタップしてXcodeから実行しましたが、それでもプロセスは必要な時点で停止し、適切に機能しました。launchdaemon/launchagent から実行しようとすると、プロセスはどこにも停止していないようで、最後まで実行され、最終的に結果、つまり仮想フォルダーの作成が表示されませんでした。これはどのように解決できますか?

事前に感謝し、あらゆる種類の提案を楽しみにしています。

0 投票する
2 に答える
473 参照

c++ - c++ フォーク後にグローバル オブジェクトを初期化する

ワーク キューを使用してタスクを実行するプログラムがあり、デーモンとして実行することになっています。次のコードを使用してこれを達成していました。

これにより、元のプロセスが閉じられ、別のプロセスが開始されます。ただし、これにより、タスクを実行するために作成したスレッドがフォーク後に再び表示されないという問題が発生しました。ワーク キューはグローバルにインスタンス化されます。他のすべての値とメモリ アドレスは子に正しくコピーされますが、スレッドはコピーされません。

参考までに、プールクラスは次のとおりです。

プール.h:

プール.cpp:

では、どうすればこれを解決できますか?