Skip to main content



      Home
Home » Eclipse Projects » 4DIAC - Framework for Distributed Industrial Automation and Control » How to create service for FORTE using Windows
How to create service for FORTE using Windows [message #1858348] Wed, 29 March 2023 23:02 Go to next message
Eclipse UserFriend
In linux environment FORTE works well with Systemctl to create services that restart automatically after some crash or restart. However on windows FORTE program is not compatible with Windows Service API ( as in {FORTE_ROOT_DIR}\src\arch\win32\main.cpp) . For more details about windows service API you can use this link (http://cosmonautdreams.com/2015/01/13/Create-a-dummy-windows-service.html)

Has someone worked with FORTE as service on windows and make it work?
If yes are you using SC command to create FORTE service on windows?

Basically I need a way to ensure that the FORTE on windows will restart after a crash or after a PC restart.

I want to know because I will invest some time to port the main.cpp to be compatible with windows Service API.
Re: How to create service for FORTE using Windows [message #1858353 is a reply to message #1858348] Thu, 30 March 2023 02:34 Go to previous messageGo to next message
Eclipse UserFriend
AFIK nobody has done something like this sofar.

What I would recommend is to provide a second main in a separate file and utilize some of our startup shutdown infrastructure (e.g., similar to what we are doing for freeRTOS or RCx) to implement the functionality. Then you could add a cmake switch that allows to switch between the classic main and your new one.
Re: How to create service for FORTE using Windows [message #1858419 is a reply to message #1858353] Sun, 02 April 2023 00:58 Go to previous messageGo to next message
Eclipse UserFriend
Thank's Alois.
I will implement following your instructions.
If you consider it to be an interesting contribution to the project I can open a pull request following FORTE contribution guide.
Re: How to create service for FORTE using Windows [message #1858428 is a reply to message #1858419] Sun, 02 April 2023 15:29 Go to previous messageGo to next message
Eclipse UserFriend
I'm not a windows user but I think this can be valuable for many other people.
Re: How to create service for FORTE using Windows [message #1863066 is a reply to message #1858428] Sat, 13 January 2024 12:50 Go to previous messageGo to next message
Eclipse UserFriend
You can try using http://nssm.cc/
Re: How to create service for FORTE using Windows [message #1865043 is a reply to message #1858348] Thu, 25 April 2024 03:42 Go to previous message
Eclipse UserFriend
More alternative solution: https://github.com/winsw/winsw

Example config for forte:
<!--
  MIT License

  Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees,
  Inc., Oleg Nenashev and other contributors

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
-->

<!--
 This is an example of a minimal Windows Service Wrapper configuration, which includes only mandatory options.
 
 This configuration file should be placed near the WinSW executable, the name should be the same.
 E.g. for myapp.exe the configuration file name should be myapp.xml
 
 You can find more information about the configuration options here: https://github.com/kohsuke/winsw/blob/master/doc/xmlConfigFile.md
 Full example: https://github.com/kohsuke/winsw/blob/master/examples/sample-allOptions.xml
-->
<service>
  
  <!-- ID of the service. It should be unique across the Windows system-->
  <id>forte_service</id>
  <!-- Display name of the service -->
  <name>FORTE Service</name>
  <!-- Service description -->
  <description>This service is 4diac FORTE service</description>
  
  <!-- Path to the executable, which should be started -->
  <executable>forte.exe</executable>

  <!--
    OPTION: workingdirectory
    If specified, sets the default working directory of the executable.
    Default value: Directory of the service wrapper executable.
  -->
  <workingdirectory>C:\msys64\home\user\forte\install\amd64\bin</workingdirectory>

  <!--
    OPTION: arguments
    Arguments, which should be passed to the executable.
  -->
  <arguments>-mc configMqtt.forte -oc configSecurity.forte</arguments>

</service>

Previous Topic:Error in build 4Diac
Next Topic:Erro when use the Maven
Goto Forum:
  


Current Time: Fri Jun 13 16:29:28 EDT 2025

Powered by FUDForum. Page generated in 0.08805 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top