• Categories
    • Recent
    • Tags
    • Popular
    • Register
    • Login

    systemctl et MyController

    Scheduled Pinned Locked Moved General Discussion
    8 Posts 2 Posters 467 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J Offline
      JeeLet
      last edited by JeeLet

      hello

      how to launch automatically the shell script of MyC at startup.

      1. create a service file :
        sudo nano /lib/systemd/system/mycontroller.service
      [Service]
      Description=MyController V2
      Type=oneshot
      RemainAfterExit=yes
      ExecStart=/opt/apps/mycontroller/mcctl.sh start
      ExecStop=/opt/apps/mycontroller/mcctl.sh stop
      
      [Install]
      WantedBy=multi-user.target
      
      1. Enable the service
        sudo systemctl enable mycontroller.service

      and well it doesn't work 🙂

      a copy of the status :

      .. sudo systemctl status mycontroller.service
      ● mycontroller.service
         Loaded: loaded (/lib/systemd/system/mycontroller.service; enabled; vendor preset: enabled)
         Active: active (exited) since Sun 2022-11-06 11:46:37 CET; 16min ago
        Process: 1712 ExecStart=/opt/apps/mycontroller/mcctl.sh start (code=exited, status=0/SUCCESS)
       Main PID: 1712 (code=exited, status=0/SUCCESS)
          Tasks: 0 (limit: 1992)
         Memory: 20.1M
         CGroup: /system.slice/mycontroller.service
      
      nov. 06 11:46:37 odroidc2 systemd[1]: Starting mycontroller.service...
      nov. 06 11:46:37 odroidc2 mcctl.sh[1712]: start command issued to the MyController server
      nov. 06 11:46:37 odroidc2 systemd[1]: Started mycontroller.service.
      

      but MyController is not running 😞

      you need to run this command to start it up

      sudo /opt/apps/mycontroller/mcctl.sh start
      

      jkandasa if you pass by, tell me everything

      Re-Edit
      For those who do not have the courage to go to the end of the thread, the solution given by jkandas

      [Unit]
      Requires=influxdb.service
      After=influxdb.service
      
      [Service]
      Description=MyController V2
      Type=oneshot
      RemainAfterExit=yes
      ExecStart=/opt/apps/mycontroller/mcctl.sh start
      ExecStop=/opt/apps/mycontroller/mcctl.sh stop
      
      [Install]
      WantedBy=multi-user.target
      
      jkandasaJ 1 Reply Last reply Reply Quote 0
      • jkandasaJ Offline
        jkandasa @JeeLet
        last edited by jkandasa

        @JeeLet I am unable to reproduce this issue. If you are trying to access mycontroller from external system, enable the port 8080 and/or 8443 on your host firewall.

        Service status
        [root@fedora-vm ~]# systemctl status mycontroller
        ● mycontroller.service
             Loaded: loaded (/usr/lib/systemd/system/mycontroller.service; enabled; vendor preset: disabled)
             Active: active (exited) since Wed 2022-11-09 13:24:03 IST; 3min 28s ago
            Process: 3973 ExecStart=/opt/apps/mycontroller/mcctl.sh start (code=exited, status=0/SUCCESS)
           Main PID: 3973 (code=exited, status=0/SUCCESS)
              Tasks: 9 (limit: 4653)
             Memory: 34.4M
                CPU: 221ms
             CGroup: /system.slice/mycontroller.service
                     └─ 3981 ./mycontroller-server -config ./mycontroller.yaml
        
        Nov 09 13:24:03 fedora-vm systemd[1]: Starting mycontroller.service...
        Nov 09 13:24:03 fedora-vm mcctl.sh[3973]: start command issued to the MyController server
        Nov 09 13:24:03 fedora-vm systemd[1]: Finished mycontroller.service.
        
        Access MyController server
        [root@fedora-vm ~]# curl http://localhost:8080/api/status -v
        *   Trying 127.0.0.1:8080...
        * Connected to localhost (127.0.0.1) port 8080 (#0)
        > GET /api/status HTTP/1.1
        > Host: localhost:8080
        > User-Agent: curl/7.82.0
        > Accept: */*
        > 
        * Mark bundle as not supporting multiuse
        < HTTP/1.1 200 OK
        < Content-Type: application/json
        < Vary: Accept-Encoding
        < Vary: Origin
        < Date: Wed, 09 Nov 2022 07:57:34 GMT
        < Content-Length: 307
        < 
        * Connection #0 to host localhost left intact
        {"hostname":"","documentationUrl":"","login":{"message":"Default username and password to login: \u003cb\u003eadmin\u003c/b\u003e / \u003cb\u003eadmin\u003c/b\u003e","serverMessage":""},"startTime":"0001-01-01T00:00:00Z","serverTime":"0001-01-01T00:00:00Z","uptime":0,"metricsDBDisabled":true,"language":""}
        
        Verify MyController server is running
        [root@fedora-vm ~]# ps -ef | grep mycontroller
        root        3981       1  0 13:24 ?        00:00:00 ./mycontroller-server -config ./mycontroller.yaml
        root        4111    3650  0 13:29 pts/1    00:00:00 grep --color=auto mycontroller
        
        
        [root@fedora-vm ~]# tail -f /opt/apps/mycontroller/logs/mycontroller.log 
        #   enabled: false                                                                                        #
        #=========================================================================================================#
        
        2022-11-09T13:24:04.127+0530	info	handler/service_listener.go:33	handler service filter config	{"filter": {"Disabled":false,"MatchAll":false,"Types":[],"IDs":[],"Labels":{"location":"server"}}}
        2022-11-09T13:24:04.128+0530	info	gateway/listener.go:32	gateway service filter config	{"filter": {"Disabled":false,"MatchAll":false,"Types":[],"IDs":[],"Labels":{"location":"server"}}}
        2022-11-09T13:24:04.130+0530	info	handler/handler.go:110	secure share directory included	{"directory": "mc_home/secure_share", "handlerPath": "/secure_share"}
        2022-11-09T13:24:04.130+0530	info	handler/handler.go:115	insecure share directory included	{"directory": "mc_home/insecure_share", "handlerPath": "/insecure_share"}
        2022-11-09T13:24:04.130+0530	info	listener/listener.go:32	web console direcory location	{"web_directory": "web_console"}
        2022-11-09T13:24:04.130+0530	info	listener/listener.go:64	listening HTTPS/SSL service on	{"address": "0.0.0.0:8443"}
        2022-11-09T13:24:04.130+0530	info	listener/listener.go:44	listening HTTP service on	{"address": "0.0.0.0:8080"}
        
        1 Reply Last reply Reply Quote 0
        • J Offline
          JeeLet
          last edited by

          .... jkandasa thanks for the help
          here are the messages in two parts

          • reboot of the system for an automatic launch of MyC
          • and manual launch with the command line
          browser logout:  This site can’t be reached192.16xxxx refused to connect.
          

          SERVICE STATUS

          ...@odroidc2:~$ systemctl status mycontroller 
          ● mycontroller.service - MyController V2
             Loaded: loaded (/lib/systemd/system/mycontroller.service; enabled; vendor pre
             Active: active (exited) since Wed 2022-11-09 09:17:05 CET; 14min ago
            Process: 1694 ExecStart=/bin/bash /opt/apps/mycontroller/mcctl.sh start (code=
           Main PID: 1694 (code=exited, status=0/SUCCESS)
              Tasks: 0 (limit: 1992)
             Memory: 20.1M
             CGroup: /system.slice/mycontroller.service
          
          nov. 09 09:17:05 odroidc2 systemd[1]: Starting MyController V2...
          nov. 09 09:17:05 odroidc2 bash[1694]: start command issued to the MyController s
          nov. 09 09:17:05 odroidc2 systemd[1]: Started MyController V2.
          

          ACCESS MYCONTROLLER SERVER

          ...@odroidc2:~$ curl http://localhost:8080/api/status -v 
          * Expire in 0 ms for 6 (transfer 0xaaaadeeb5d60)
          * Expire in 1 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 0 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 2 ms for 1 (transfer 0xaaaadeeb5d60)
          * Ex......
          ...........
           .........ransfer 0xaaaadeeb5d60)
          * Expire in 2 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 0 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 0 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 2 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 1 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 1 ms for 1 (transfer 0xaaaadeeb5d60)
          * Expire in 1 ms for 1 (transfer 0xaaaadeeb5d60)
          *   Trying ::1...
          * TCP_NODELAY set
          * Expire in 149998 ms for 3 (transfer 0xaaaadeeb5d60)
          * Expire in 200 ms for 4 (transfer 0xaaaadeeb5d60)
          * connect to ::1 port 8080 failed: Connexion refusée
          *   Trying 127.0.0.1...
          * TCP_NODELAY set
          * Expire in 149997 ms for 3 (transfer 0xaaaadeeb5d60)
          * connect to 127.0.0.1 port 8080 failed: Connexion refusée
          * Failed to connect to localhost port 8080: Connexion refusée
          * Closing connection 0
          curl: (7) Failed to connect to localhost port 8080: Connexion refusée
          

          VERIFY MYCONTROLLER SERVER IS RUNNING

          ... @odroidc2:~$ ps -ef | grep mycontroller 
          
          "name"       2609  2593  0 09:35 pts/0    00:00:00 grep mycontroller
          
          ... @odroidc2:~$ tail -f /opt/apps/mycontroller/logs/mycontroller.log 
          
          2022-11-09T09:24:15.244+0100	info	gateway/service.go:35	starting a gateway	{"id": "GwRs485"}
          2022-11-09T09:24:15.245+0100	info	protocol_serial/client.go:63	opening a serial port	{"gateway": "GwRs485", "port": "/dev/ttyACM0"}
          2022-11-09T09:24:15.245+0100	error	provider/service.go:86	error	{"error": "open /dev/ttyACM0: no such file or directory"}
          2022-11-09T09:24:15.245+0100	error	gateway/service.go:44	failed to start a gateway	{"id": "GwRs485", "timeTaken": "1.771339ms", "error": "open /dev/ttyACM0: no such file or directory"}
          2022-11-09T09:17:05.711+0100	info	logger/load.go:15	welcome to the MyController world :)
          2022-11-09T09:17:05.733+0100	info	mcbus/client.go:48	bus service paused
          2022-11-09T09:17:05.736+0100	info	backup/restore.go:149	Executing import job	{"sourceDir": "mc_home/data/storage/memory_db/yaml", "fileType": "yaml"}
          2022-11-09T09:17:06.083+0100	info	mcbus/client.go:54	bus service resumed
          2022-11-09T09:17:06.099+0100	error	influxdb_v2/client.go:206	error on getting ping status	{"error": "Get \"http://127.0.0.1:8086/ping\": dial tcp 127.0.0.1:8086: connect: connection refused"}
          2022-11-09T09:17:06.099+0100	fatal	server/start.go:39	error on init metric database	{"error": "Get \"http://127.0.0.1:8086/ping\": dial tcp 127.0.0.1:8086: connect: connection refused"}
          
          1 Reply Last reply Reply Quote 0
          • J Offline
            JeeLet
            last edited by

            manual launch

            .....@odroidc2:~$ sudo /opt/apps/mycontroller/mcctl.sh start
            [sudo] Mot de passe de "name" : 
            start command issued to the MyController server
            

            SERVICE STATUS

            ... @odroidc2:~$ systemctl status mycontroller 
            ● mycontroller.service - MyController V2
               Loaded: loaded (/lib/systemd/system/mycontroller.service; enabled; vendor preset: enabled)
               Active: active (exited) since Wed 2022-11-09 09:17:05 CET; 20min ago
              Process: 1694 ExecStart=/bin/bash /opt/apps/mycontroller/mcctl.sh start (code=exited, status=0/SUCCESS)
             Main PID: 1694 (code=exited, status=0/SUCCESS)
                Tasks: 0 (limit: 1992)
               Memory: 20.1M
               CGroup: /system.slice/mycontroller.service
            
            nov. 09 09:17:05 odroidc2 systemd[1]: Starting MyController V2...
            nov. 09 09:17:05 odroidc2 bash[1694]: start command issued to the MyController server
            nov. 09 09:17:05 odroidc2 systemd[1]: Started MyController V2.
            

            ACCESS MYCONTROLLER SERVER

            ...  @odroidc2:~$  curl http://localhost:8080/api/status -v 
            
            * Expire in 0 ms for 6 (transfer 0xaaaae49aad60)
            * Expire in 1 ms for 1 (transfer 0xaaaae49aad60)
            .....
            ...
            * Expire in 1 ms for 1 (transfer 0xaaaae49aad60)
            * Expire in 1 ms for 1 (transfer 0xaaaae49aad60)
            *   Trying ::1...
            * TCP_NODELAY set
            * Expire in 149998 ms for 3 (transfer 0xaaaae49aad60)
            * Expire in 200 ms for 4 (transfer 0xaaaae49aad60)
            * Connected to localhost (::1) port 8080 (#0)
            > GET /api/status HTTP/1.1
            > Host: localhost:8080
            > User-Agent: curl/7.64.0
            > Accept: */*
            > 
            < HTTP/1.1 200 OK
            < Content-Type: application/json
            < Vary: Accept-Encoding
            < Vary: Origin
            < Date: Wed, 09 Nov 2022 08:39:05 GMT
            < Content-Length: 313
            < 
            * Connection #0 to host localhost left intact
            {"hostname":"","documentationUrl":"","login":{"message":"Default username and password to login: \u003cb\u003eadmin\u003c/b\u003e / \u003cb\u003eadmin\u003c/b\u003e","serverMessage":""},"startTime":"0001-01-01T00:00:00Z","serverTime":"0001-01-01T00:00:00Z","uptime":0,"metricsDBDisabled":false,"language":"en_GB"}mci@odroidc2:~$ 
            
            

            VERIFY MYCONTROLLER SERVER IS RUNNING

            ..... @odroidc2:~$ ps -ef | grep mycontroller 
            root      2624     1  1 09:37 pts/0    00:00:03 ./mycontroller-server -config ./mycontroller.yaml
            mci       2646  2593  0 09:41 pts/0    00:00:00 grep mycontroller
            
            ....@odroidc2:~$ tail -f /opt/apps/mycontroller/logs/mycontroller.log 
            2022-11-09T09:37:14.195+0100	info	gateway/service.go:35	starting a gateway	{"id": "GwRs485"}
            2022-11-09T09:37:14.196+0100	info	protocol_serial/client.go:63	opening a serial port	{"gateway": "GwRs485", "port": "/dev/ttyACM0"}
            2022-11-09T09:37:14.203+0100	info	handler/handler.go:106	secure share directory included	{"directory": "mc_home/secure_share", "handlerPath": "/secure_share"}
            2022-11-09T09:37:14.203+0100	info	handler/handler.go:111	insecure share directory included	{"directory": "mc_home/insecure_share", "handlerPath": "/insecure_share"}
            2022-11-09T09:37:14.203+0100	info	listener/listener.go:32	web console direcory location	{"web_directory": "web_console"}
            2022-11-09T09:37:14.203+0100	info	gateway/service.go:48	started a gateway	{"id": "GwRs485", "timeTaken": "8.465971ms"}
            2022-11-09T09:37:14.204+0100	info	listener/listener.go:64	listening HTTPS/SSL service on	{"address": "0.0.0.0:8443"}
            2022-11-09T09:37:14.204+0100	info	listener/listener.go:44	listening HTTP service on	{"address": "0.0.0.0:8080"}
            2022-11-09T09:37:14.204+0100	info	gateway/service.go:35	starting a gateway	{"id": "OdroidC2"}
            2022-11-09T09:37:14.439+0100	info	gateway/service.go:48	started a gateway	{"id": "OdroidC2", "timeTaken": "234.218179ms"}
            
            
            jkandasaJ 1 Reply Last reply Reply Quote 0
            • jkandasaJ Offline
              jkandasa @JeeLet
              last edited by

              @JeeLet can you stop and start the service manually?

              systemctl stop mycontroller
              systemctl start mycontroller
              

              If it works you have to add influxdb as dependent service for MyController service.
              My assumption: On boot influxdb is not ready and MyController service terminated

              1 Reply Last reply Reply Quote 0
              • J Offline
                JeeLet
                last edited by JeeLet

                yes it works fine
                it asks me the password.

                so I just have to add a timeout in the file, or even better check the start of influxdb ?

                @odroidc2:~$ systemctl stop mycontroller
                ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
                Authentification requise pour arrĂȘter « mycontroller.service ».
                Authenticating as: ... "..name"
                Password: 
                ==== AUTHENTICATION COMPLETE ===
                
                @odroidc2:~$ systemctl start mycontroller
                ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
                Authentification requise pour démarrer « mycontroller.service ».
                Authenticating as: ...."name"
                Password: 
                ==== AUTHENTICATION COMPLETE ===
                
                

                test

                
                [Unit]
                Requires=influxdb@client.service
                After=influxdb@client.service
                
                

                ?????

                jkandasaJ 1 Reply Last reply Reply Quote 0
                • jkandasaJ Offline
                  jkandasa @JeeLet
                  last edited by

                  @JeeLet you can add influxdb.service as dependency.

                  can you add the following lines on mycontroller.service file and try on boot?

                  [Unit]
                  Requires=influxdb.service
                  After=influxdb.service
                  
                  [Service]
                  Description=MyController V2
                  Type=oneshot
                  RemainAfterExit=yes
                  ExecStart=/opt/apps/mycontroller/mcctl.sh start
                  ExecStop=/opt/apps/mycontroller/mcctl.sh stop
                  
                  [Install]
                  WantedBy=multi-user.target
                  
                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    JeeLet
                    last edited by

                    it's maximum super good 👍

                    after cleaning the old one

                    "sudo systemctl revert mycontroller.service"
                    

                    and a copy of the example you gave me (thanks)

                       "sudo systemctl enable mycontroller.service"
                    

                    a reboot, functional server connection 😎

                    ... well I continue with MyController, other things to see.

                    Thanks a lot, lots of sunshine for you
                    đŸ€ž

                    1 Reply Last reply Reply Quote 1
                    • First post
                      Last post

                    0

                    Online

                    587

                    Users

                    529

                    Topics

                    3.4k

                    Posts
                    Copyright © 2015-2025 MyController.org | Contributors | Localization