Giter VIP home page Giter VIP logo

serviceonset's Introduction

ServiceOnset - A simple service wrapper

ServiceOnset is an utility to help you to run one or more programs as a windows service. Is it cool? The most typical usage is for Node.js, COW, regular jobs and so on. ServiceOnset is a wrapper program implemented as a windows service. So it enables some of foreground applications started before login.

Prerequisites

Windows operation with Microsoft .NET Framework 4.0

Installation

  1. Clone and build the solution with VisualStudio or download the binary package directly.
InstallUtil.exe
log4net.config
log4net.dll
ServiceOnset.exe
ServiceOnset.exe.json
  1. Start a command line with Administrator privilege.
  2. Navigate to the directory of the binary package.
  3. Run InstallUtil ServiceOnset.exe to install the service.
  4. Change the config of ServiceOnset as you want. Refer to ServiceOnset.exe.json
  5. Optional. Change the config of log4net if you want assign a dedicated logger for a service. Refer to log4net Config
<log4net>
  <root>
    <appender-ref ref="Default" />
  </root>
  <appender name="Default" type="log4net.Appender.RollingFileAppender">
    <file value="logs/log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd&quot;.log&quot;" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
</log4net>
  1. Open windows services manager and start ServiceOnset service. Or directly execute net start ServiceOnset.
  2. Enjoy ~~

Uninstallation

  1. Stop the service net stop ServiceOnset if it is running.
  2. Start a command line with Administrator privilege.
  3. Navigate to the directory of the binary package.
  4. Run InstallUtil /u ServiceOnset.exe to remove the service.
  5. Clean up the directory.

Sample

{
	"enableLog": true,
	"services": [
		{
			"name": "PingBaidu",
			"command": "ping",
			"arguments": "www.baidu.com",
			"workingDirectory": "",
			"runMode": "interval",
			"intervalInSeconds": 10,
			"useShellExecute": false,
			"enableLog": true
		},
		{
			"name": "mywinTesting",
			"command": "mywin"
		}
	]
}

References

Property Value type Required Default Description
enableLog bool false Determinate if generate logs by log4net
services array Yes (empty) Program definitions hosted by ServiceOnset
name string Yes Program identifier, must be same to the corresponding logger name
command string Yes Command (with full path or not). eg.: ping
arguments string "" Command arguments. eg.: www.baidu.com
workingDirectory string Command path, or ServiceOnset path Working directory. eg.: D:\\ServiceOnset\\
runMode enum "daemon" "daemon": Auto-restart the program if it exited
"launch": Launch the program once and let it be
"interval": Restart the program termly by force kill the running process
intervalInSeconds int 30 Detecting interval in seconds for current run mode
useShellExecute bool false Start a process by UseShellExecute. Will omit the standard output of a console when the value is true

Case sample for COW

  1. Make sure cow.exe or cow-hide.exe or cow-taskbar.exe with rc.txt can work.
  2. Extract ServiceOnset binary package to COW directory. And config like this:
{
	"enableLog": true,
	"services": [
		{
			"name": "COW",
			"command": "cow.exe"
		}
	]
}

Contact QQ: 9812152 @Hedda

serviceonset's People

Contributors

heddaz avatar

Watchers

GuruPoo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.