[Tech] Running windows exe from Linux

Silk

Well-Known Member
Really geeky question!

We have a windows machine and a bespoke app that must be executed (with an argument passed in).

We have some folks telling us that the only way they can run our bespoke app on a windows platform is to install an agent on our machine. Their machine is running linux. Both machines are visible to each other on the network.

Am I right in thinking this is nonsense? I dont' know linux at all but I can't for life of me imagine that it would be difficult to invoke an exe on another machine (even if it's running windows).

Can't risk installing said agent, as the windows machine is a live box.
 

Haven

Administrator
Staff member
To run windows apps on linux you have several options.

You can run a virutal machine such as vmware or virtualbox which creates a full virtualised windows environment (lots of overhead but good compatibility) or you can run a compatibiltiy layer such as Wine, Crossover Office or Cedega that replicate the core dll functionality within Windows and allow you to run windows applications natively in Linux (less compatible but hardly any overhead).

I'd reccomend running their app in Wine and seeing if it works.

If I've misunderstood this totally then what you are talking about is simply network file access and you can use NFS or CIFS (Samba) to connect to files on the Windows box and run it locally over the network or use VNC/NX or X11 forwarding to access the app that is running remotely ...
 

Silk

Well-Known Member
To run windows apps on linux you have several options.

You can run a virutal machine such as vmware or virtualbox which creates a full virtualised windows environment (lots of overhead but good compatibility) or you can run a compatibiltiy layer such as Wine, Crossover Office or Cedega that replicate the core dll functionality within Windows and allow you to run windows applications natively in Linux (less compatible but hardly any overhead).

I'd reccomend running their app in Wine and seeing if it works.

If I've misunderstood this totally then what you are talking about is simply network file access and you can use NFS or CIFS (Samba) to connect to files on the Windows box and run it locally over the network or use VNC/NX or X11 forwarding to access the app that is running remotely ...

The app sits on a windows box and must be remotely executed from the linux box.

i.e. if they were both windows machines it would be a simple case of machine A doing a shell command to machine B:

\\networkpath\\ourexe.exe theparam
 

Haven

Administrator
Staff member
Looks like you need to simply mount a windows file share on the linux box using samba and run it across that.
 

Silk

Well-Known Member
Looks like you need to simply mount a windows file share on the linux box using samba and run it across that.

So is that easy to do?
Forgive me but I am clueless when it comes to linux.

FYI the windows exe is supposed to be executed whenever a file is sent to our transfer area. It datestamps the file and sends to the relevant database.

The linux guys need to send us a file whcih they can do, but they are telling us they can't also run the exe without installing an agent on our machine.

Where we are now, is we have to look into writing "listening" software on the windows machine, to detect when the linux machine has sent a file, since it supposedly cannot invoke the exe.
 

thatbloke

Junior Administrator
If the linux machine needs to invoke a program on the windows machine such that the program will run on the Windows box (when you run a program, it runs on the box you run it on. No point running the windows program on the Linux box!) then you will need some kind of server software listening for a message that the Linux box (i.e. a client) can send. In both cases, you'll need some extra software on both.

It sounds like this "Agent" you are describing that the suppliers of said software want to install actually is that listening software that is required.
 

Zooggy

Junior Administrator
Staff member
Hey, :)

Yep, Bloke is right. There is no way for a Linux machine (or any other kind of machine, for that matter, even another windows machine) to tell a windows machine to run a specific app, unless the machine with the app is running a service or agent of some kind.

My advice is to back up the live machine and run tests over the weekend or some other slower period of activity.

Cheers,
J.
 

Zooggy

Junior Administrator
Staff member
Ahey, :)

er.... isn't this just a matter of RPCs??

That depends on the app in question. Some apps are geared for DCOM/COM+ and can accept RPCs. Most aren't. Also, you need a DCOM/COM+ client for Linux, and I don't know that there is one...

Cheers,
J.
 
Top