Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    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] Thu, 30 March 2023 03:02 Go to next message
Felipe Adriano da Silva Gonçalves is currently offline Felipe Adriano da Silva GonçalvesFriend
Messages: 35
Registered: February 2017
Location: Brazil
Member
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 06:34 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1586
Registered: January 2014
Senior Member

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 04:58 Go to previous messageGo to next message
Felipe Adriano da Silva Gonçalves is currently offline Felipe Adriano da Silva GonçalvesFriend
Messages: 35
Registered: February 2017
Location: Brazil
Member
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 19:29 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1586
Registered: January 2014
Senior Member

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 17:50 Go to previous messageGo to next message
Ketut Kumajaya is currently offline Ketut KumajayaFriend
Messages: 25
Registered: January 2024
Junior Member
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 07:42 Go to previous message
Ketut Kumajaya is currently offline Ketut KumajayaFriend
Messages: 25
Registered: January 2024
Junior Member
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:problems with compiling 4diac forte on raspberry pi 4
Goto Forum:
  


Current Time: Sun Apr 28 18:19:18 GMT 2024

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

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

Back to the top