私はinitdを使ってsystemdに変換するアプリケーションを持っています。 initdスクリプトは "myscript.bash start"の実行に使用されましたが、ユーザーは "myscript.bash start"を実行することもできます。ユーザーが "myscript.bash start"を実行すると、systemctl(それ自体が "myscript.bash startup"を起動します)が実行され、サービスが開始されます。 (これは曖昧なことですが、私は知っています - myscript.bashの内容のバージョン履歴を保持することですが、ユーザーはシステムの使い方をシステムで開始できるようにするため、systemctlへの切り替えは不可視です)。systemdサービスのためにstdout/stderrをコンソールに送ります
以前は、ユーザーがmyscript.bashを実行した場合、スタートアップがどのように進んでいたかについてコンソールに一連のアップデートがありました。これで情報はコンソールに送られません。私は、物事のカップルを試した中で最も有望なのttyにStandardOutput &はStandardErrorを設定しているように見えた:
StandardOutput=tty
StandardError=tty
ExecStart=/bin/bash -c './myscript.bash startup &'
ExecStop=/bin/bash -c './myscript.bash shutdown'
しかし、私はこのエラーを取得する:
systemd[20694]: Failed at step STDOUT spawning /bin/bash: Inappropriate ioctl for device
私はこれを見てきました:How to Pipe Output to a File When Running as a Systemd Service? (これは私にStandardOutput =を試してみるというアイデアを与えてくれましたが、ファイルに書き込むという目標があり、ユーザのコンソールに出力しようとしています)。
これは、ユーザーが直接起動するのではなく、systemctlを実行しているスクリプトがあるためですか?これを行う方法はありますか?
このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – Marusyk
私はjournal + consoleで希望の結果を得られません。 「コンソール」はシステムコンソール、つまりマシンに接続されているモニターを意味するのでしょうか、それともsystemdを実行したユーザーセッションを意味していますか?私の場合、私はマシンに流し込まれていて、systemdを実行しています。私は、私のsshセッションでExecStartの出力をリアルタイムで見たいと思っています。 – papercrane