Mono Process.Start Bashを見つける方法は?
-
11-10-2019 - |
質問
私のWebAppでは、以下をします。 1)start_szをテキストファイルにダンプしようとしたので、私はそれが正しいことを知っています2)su www-data 3)抽出文字列をコピー/貼り付けて、それは機能しました。
var start_sz = string.Format(@"bash -c 'ln ""{2}/{0}"" ""{2}/{1}""'", fn, newfn, System.IO.Directory.GetCurrentDirectory());
Process.Start(start_sz);
以下に例外を取得しているので、上記の理由で、バッシュは見つからないと言っています。
指定されたファイルが見つかりません
at System.diagnostics.process.start_shell(system.diagnostics.processstartinfo startinfo、system.diagnostics.process process)[0x00000] in:0
at System.diagnostics.process.start_common(system.diagnostics.processstartinfo startinfo、system.diagnostics.process process)[0x00000] in:0
at System.diagnostics.process.start(system.diagnostics.processstartinfo startinfo)[0x00000] in:0
at System.diagnostics.process.start(system.string filename)[0x00000] in:0
mysite.queuemanager.makelink(system.string fn)[0x00000] in:0
mysite.queuemanager.imagequeue2()[0x00000] in:0
mysite.queuemanager.imagequeue()[0x00000] in:0
それで、どうすればこれを修正できますか?基本的に、asp.netアプリで実行時にハードリンク(ソフトも問題ない)を作成する必要があります。
私は多分私は完全なバッシュパスが必要だと思ったので私は試しました /bin/bash -c
しかし、それもうまくいきませんでした。
解決
電話してみませんか ln
直接?それなし bash
?
Process.Start("ln", params);
また、フルパスを指定する必要がある場合があります。
Process.Start("/bin/ln", params);
実際には、 Process.Start("bash")
私のために働いて、したがってチェックしてください $PATH
環境変数など
他のヒント
いいえ、使用すると正しいことを知っています シェルから. 。そのシェルは、とは異なり、道を考慮します Process.Start
.
バッシュへのフルパスを指定するだけです。 /bin/bash
.