Actual meaning of windows services - windows-services

I just want the explanation to the question 'what does windows services basically means?' I want some real time example that i can relate 'windows services' with?

Windows services are background running processes. they dont have UI. Windows services are installed in windows based machines to do some particular tasks on the background like a job. Windows Services has .exe extension but cannot run like a application.
click 'start' in your windows machine, type 'services.msc' and press Enter. This will open windows services installed in your current machine with their active status. If you stop some service, Some relevant application may misbehave. i.e, If any windows application that uses this service for some background job the application would crash.
Antivirus scan, Task scheduler which does some task at specified time are examples of windows services.
In development perspective windows services has
OnStart event (Fires when services start)
OnStop event (Fires when services stop)
timerElapsed event (if you set the interval as 15 seconds, this event fires every 15 seconds)
These services can be created using windows services template in visual studio and installed, uninstalled using 'installutil'
installutil -i servicepath\service.exe (installs service)
installutil -u servicepath\service.exe (uninstalls service)
Windows services can also host wcf services with mex binding. if you have any particular question do let me know. accept if it is useful

Related

How to Configure the Windows Service Release Tasks like Install TopShelf Windows Service in VSTS?

I am working on DevOps with VSTS. I created the simple windows service application using VS2015 for that I configured the release definition in VSTS by adding this tasks through this Windows Service Release Tasks.
I configured the Start Windows Services, Install (TopShelf) Windows Service and Stop Windows Services tasks successfully.
Configuration of Install (TopShelf) Windows Service
During release the above Stop and Install tasks are run successfully but Start task failed with the following error.
The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: No such services: FirstService
Because the Install(TopShelf) Windows Service task will not be installed an windows service in machine. But it simply succeded.
I have the few questions like
what is the difference between Install(TopShelf) Windows Service and Install and Start Windows Service VSTS release tasks.
If I used the Install(TopShelf) Windows Service task, It works only if you have already existing windows service is running in virtual machine otherwise it will failed. But if I used the Install and Start Windows Service task, It will be installed new windows service in virtual machine. But I am unable to give Displayname and Description of the installed windows service.
They are two extensions created by 3rd party. So you can search them in the VSTS Marketplace and get the detailed information for them.
For your question:
Install(TopShelf) Windows Service
This is used to install Topshelf service which created with Topshelf framework.
Install and Start Windows Service
This is used to install the general Windows Service via Power-Shell or InstallUtli.
So if you just create a general Windows Service from VS. You should use the second one.
And usually, to set the Display Name and Description for a Windows Service, you need to do it in your code. Please refer to this question for details: What's the best way to set a windows service description in .net.

How to unhide an application window started by Jenkins "windows command"?

I have defined a third party application to run as part of job finalizing process in a "windows batch command":
"C:\Program Files\Folder\App.exe"
Jenkins runs this and it works fine. but sometimes the App.exe is waiting for user action cause something went wrong, but since the application window is hidden I dont know what went wrong.
Is there a way to ask Jenkins to not hide the application window started by the windows batch command?
The jenkins is running as a windows service and using the same account as the logged in user on the jenkins box.
Nope and it isn't Jenkins fault. In Windows NT operating systems, a Windows service is a computer program that operates in the background.
In former Windows version there was a option "Allow service to interact with desktop" but since Vista the setting no longer works.

Windows Service doesn't start automatically

I have a windows service written in .Net 3.5 set to be automatically start, but it wouldn't start when system reboots.
As I understand, it may be caused by my service's dependency aren't started when the services tries to start. I don't know what my service depends on. I tried the workaround by adding windows print spooler as one of my service's dependencies, since print spooler is one of the services start quite late during the boot-up. Well, the work around doesn't work neither.
I'm using windows server 2003 r2. so the "delayed automatically restart" option is not available to me. and I can't use windows server 2008 just for this.
I'm out of ideas at the moment. Any suggestion would be appreciated.
A few suggestions to try out:
Check the system even logs
Add logging to your service, e.g. to system event log or use log4net
Strip the service down to a single message in the start-up or create a new stripped-down minimal service with as little dependencies as possible. See whether this starts
Check under which account your service is running and whether this account has the permission to "Run As A Service"

How to install a Windows service created in VC++ 6.0

I have a windows NT service (Maths.exe) created in VC++ 6.0.
I don't have the source code or Visual studio 6.0 installed on my machine.
Can anyone please let me know the command using which I can install the service in Service Control Manager (invoked using service.msc).
I want to control (start, stop) the service manually.
Thanks in advance.
To install a service, you can use the sc utility. The steps are:
Copy the executable and all its dependencies into a directory (%SYSTEMROOT%\System32 is perfectly valid).
Run as administrator of the computer the command:
sc create MathsService binPath= %SYSTEMROOT%\System32\Maths.exe type= own type= interact start= demand DisplayName= "My fabulous Maths service"
Where MathsService is the name of the service, the argument to binPath is the binary location and DisplayName argument is the name that shows on services.msc. The argument to start can be boot (not suitable for a service), system (not suitable for a service), auto (autostart), demand (on demand start, you have to start your service manually) or disabled (service will not start even manually).
In this example, i use type= own type= interact. This allows the service to interact with the desktop (for TCP/IP communications, for example).
Complete reference of sc sintaxis is available running sc. Also check http://support.microsoft.com/kb/251192

Running an exe from windows service that interacts the the user's desktop

I've created a windows service in C# and Windows Server 2003. I would like my service to be able to run an exe file that is Windows forms application. When I start the service - it runs the other application but I cannot see it. When I open Task Manager - i can see that the application is running but I just cannot see it. I have checked "Allow the service to interact with the desktop" but nothing happens. Please help.
Is it possible to run and exe from within a windows service and see the exe running in widnows server 2003?
Showing UI from a Windows service is very problematic because the service may be running on a different desktop from the user (and on Vista/Server 2008 will in fact always run on a different desktop).
The easiest solution is to run the UI not directly from the service but from an application running on the user's desktop (maybe set to run at login) that communicate with the service somehow.
Just remember:
There may be no logged in user
There may be multiple logged in users using fast user switching or remote desktop
The application on the user desktop is running in the user's security context, not the service's

Resources