問題タブ [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.
python - sh スクリプト (etc/init.d/skeleton から作り直したもの) から python に引数を渡す
私にはスクリプトがあり、Python プログラムに引数を渡す必要があります。私は引数を取ります:
$DAEMON は、.py ファイルへのパスです。このような数値引数を渡す必要があります
そして、この番号を sleep.py に渡す必要があります。sleep.py のコード:
n = 10 (コンソールから渡された引数) を作成するにはどうすればよいですか?
linux - Ubuntu で systemd サービス デーモンを実行できない (Upstart に切り替える方法、または更新されたディストリビューションがあるか)
注: サーバーを管理したり、Linux を深いレベルで使用したりする実際の経験がないため、知識と理解はかなり限られています。本質的に、私はそれを翼にしています。
完全なコード例については、https ://github.com/Integralist/Vagrant-Examples/tree/master/nodejs を参照してください。
これは 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 形式に変換する方法に関するアドバイス (または適切なリソース) はありますか?
この件に関する助けをいただければ幸いです。冒頭で述べたように、私はシステム/サーバーの運用担当者ではないので、ここで説明します。
ありがとう。
アップデート
これを見つけたのですがsystemd
、init.d
との違いを誤解していたようですupstart
。とを改善systemd
した新しいシステムも同様です。init.d
upstart
systemd
にリンクされている記事では、一緒にインストールしupstart
てから に切り替える方法について説明してsystemd
いますが、VM をマウントしようとしてもエラーが発生しますか?
レポコードを更新しました。
python - Python デーモンのステータスが不明です
チュートリアルでpython デーモンを作成しましたが、チュートリアルの例と同じように実行されています。しかし、問題があります:
の出力はservice --status-all
言う:
[ ? ] テストデーモン
これらのエラーと警告が何であるかを調べたり、デーモンのステータスを修正して、次のようになるように手伝ってくれる人はいますか。
[ + ] テストデーモン
xcode - MacOSX ランチ デーモン
ユーザーが手動で削除するまで保持する必要がある仮想フォルダーをシステムに作成しています。これは仮想フォルダであるため、システムの電源を切るか再起動すると、自動的に削除されます。
したがって、それを永続化するために、システムの起動時に実行されるデーモン/起動エージェントから実行しようとしています。このために、仮想フォルダーを作成するだけのコードを分離し、コマンドラインツールテンプレートを使用して別の Xcode アプリケーションとして作成し、その UNIX 実行可能ファイルを LaunchAgents/LaunchDaemons に追加して、システムが再起動するたびに実行されるようにしました。
私の場合、仮想フォルダーの作成には、実際には getchar() 関数を使用して実行されるプロセスを保持する必要があります。Xcode 経由でビルドすると、プロセスは getchar() で停止し、仮想フォルダーが適切に作成されます。今、私はその実行可能ファイル(unix実行可能ファイル)を取得し、それをダブルタップしてXcodeから実行しましたが、それでもプロセスは必要な時点で停止し、適切に機能しました。launchdaemon/launchagent から実行しようとすると、プロセスはどこにも停止していないようで、最後まで実行され、最終的に結果、つまり仮想フォルダーの作成が表示されませんでした。これはどのように解決できますか?
事前に感謝し、あらゆる種類の提案を楽しみにしています。
c++ - c++ フォーク後にグローバル オブジェクトを初期化する
ワーク キューを使用してタスクを実行するプログラムがあり、デーモンとして実行することになっています。次のコードを使用してこれを達成していました。
これにより、元のプロセスが閉じられ、別のプロセスが開始されます。ただし、これにより、タスクを実行するために作成したスレッドがフォーク後に再び表示されないという問題が発生しました。ワーク キューはグローバルにインスタンス化されます。他のすべての値とメモリ アドレスは子に正しくコピーされますが、スレッドはコピーされません。
参考までに、プールクラスは次のとおりです。
プール.h:
プール.cpp:
では、どうすればこれを解決できますか?