私はいくつかのルビーコードを持っています、それは次のとおりです
system("rgvim " + MY_FILE)
これはターミナルからは正常に機能しますが、このコードを systemd を使用してラック アプリケーションとして実行すると、システム コールが機能しません。メッセージが表示されます:
Dec 06 14:40:54 mypc config.ru[10211]: Vim: Warning: Output is not to a terminal
Dec 06 14:40:54 mypc config.ru[10211]: Vim: Warning: Input is not from a terminal
これは、デーモン化されたプロセスがファイル記述子にアクセスできないためだと思います。
EDIT 何人かのコメンターは、私のユースケースのより具体的な詳細を求めました。ここに行きます:私はラックベースのルビーアプリをsystemd
. ラック アプリのコードには上記のシステム コールが含まれており、ターミナルから実行すると正常に動作します。
rack config.ru
ただし、systemd で起動すると、上記でより一般的に説明したように、ラック アプリは適切なファイル記述子にアクセスできません。現在のXディスプレイおよび/またはファイル記述子をマップすることが何とか可能であるように私には思えますsystemd