C#在linux中执行终端命令

标签 c# linux bash terminal

我希望我的 C# 应用程序(我在树莓派上执行)在启动时运行 bash 脚本..
基本上:脚本位于 /etc/init.d 中,名为 mnw。我希望每当我的 c# 应用程序启动时,它都应该执行 mnw 脚本的一部分。
如果它是在终端中编写的,它看起来像:

cd /etc/init.d
./mnw stop

我希望这发生在 public static void Main() 的开头,我一直在尝试

ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/dev/init.d/./mnw", Arguments = "stop", }; 
Process proc = new Process() { StartInfo = startInfo, };
proc.Start();

但是它说 stop 是一个意想不到的参数,有什么想法吗?

最佳答案

我从未在 Mono/Linux 上使用过 ProcessStartInfo,但您是否尝试过通过 bash 调用?

ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/bin/bash", Arguments = "/dev/init.d/mnw stop", }; 
Process proc = new Process() { StartInfo = startInfo, };
proc.Start();

此外,mnw 上的可执行位没有问题吗?

关于C#在linux中执行终端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679283/

相关文章:

c# - 以编程方式以特定分辨率编辑图标

c# - 用于 WPF 导航的 Window vs Page vs UserControl?

linux - 在 Linux Mandriva 中安装 Subversion-1.6.17 - 未创建 bin 文件夹

linux - 跟踪文件系统更改AMI Linux服务器

linux - 在 debian wheezy 中安装 3.5 内核的头文件?

bash - 编写嵌套 shell 脚本 - 无法传递参数

c# - 如何以编程方式为 log4net 中的两个附加程序获取记录器?

c# - 可空变量在内存分配中的优势 C#

python - 使用 printf 在 bash 中导出不起作用

mysql - Bash for 循环 : Backticks