Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't install and run server with systemd, CentOS 7.5 x64 #852

Closed
vkukh opened this issue Jul 21, 2018 · 21 comments
Closed

Can't install and run server with systemd, CentOS 7.5 x64 #852

vkukh opened this issue Jul 21, 2018 · 21 comments
Labels

Comments

@vkukh
Copy link

vkukh commented Jul 21, 2018

Hello! I installed Impress on CentOS 7.5 x64. I was able to run the server just under the root, "impress start" gave a port error, so I ran it through the "node server &", the error got out too, but the server was working. The server is working now, but how can I track the process (stop) and "systemctl status impress" shows

● impress.service - Impress Application Server
Loaded: loaded (/etc/systemd/system/impress.service; enabled; vendor preset: disabled)
Active: inactive (dead)

лип 20 20:20:46 rider systemd[1]: Starting Impress Application Server...
лип 20 20:20:46 rider systemd[1]: impress.service: control process exited, code=exited status=127
лип 20 20:20:46 rider sh[25591]: /bin/sh: impress: command not found
лип 20 20:20:46 rider systemd[1]: Failed to start Impress Application Server.
лип 20 20:20:46 rider systemd[1]: Unit impress.service entered failed state.
лип 20 20:20:46 rider systemd[1]: impress.service failed.

Thank you for any help!

@tshemsedinov
Copy link
Member

@newGermes do you have something in impress log folder?
@belochub please investigate this case and give your proposals.

@tshemsedinov tshemsedinov changed the title Installation of Impress. Can't run server with systemd: CentOS 7.5 x64 Installation, can't run server with systemd, CentOS 7.5 x64 Jul 22, 2018
@tshemsedinov tshemsedinov changed the title Installation, can't run server with systemd, CentOS 7.5 x64 Can't install and run server with systemd, CentOS 7.5 x64 Jul 22, 2018
@lundibundi
Copy link
Member

lundibundi commented Jul 22, 2018

Based on your logs лип 20 20:20:46 rider sh[25591]: /bin/sh: impress: command not found the systemd unit couldn't find the impress startup binary. Did you perhaps install Impress manually or did you use the deploy script?

@vkukh
Copy link
Author

vkukh commented Jul 22, 2018

2018-07-20T17:37:20.838Z [system] Server started
2018-07-20T17:37:20.843Z [system] JSTP listen on 206.189.56.48:250 by Master(26399/S1N0) Cloud Controller
2018-07-20T17:37:20.933Z [error] Can't bind to host/port 206.189.56.48:250
2018-07-20T17:37:20.933Z [system] Crashed
2018-07-20T17:40:34.945Z [system] Server started
2018-07-20T17:40:34.950Z [system] JSTP listen on 206.189.56.48:250 by Master(26533/S1N0) Cloud Controller
2018-07-20T17:40:36.451Z [info] incomingMessage: {handshake:[0,'impress'],login:['S1N1','19nm58993eJ747845fk78A2z7854W90D']} 206.189.56.48
2018-07-20T17:40:36.453Z [info] outgoingMessage: {handshake:[0],ok:'5feb4b35-4f08-4aa9-8af2-0da58d83e7d9'} S1N1 5feb4b35-4f08-4aa9-8a$
2018-07-20T17:40:36.453Z [info] handshakeRequest: 'impress' 'login' S1N1 5feb4b35-4f08-4aa9-8af2-0da58d83e7d9 206.189.56.48
2018-07-20T17:40:36.499Z [info] incomingMessage: {handshake:[0,'impress'],login:['S1N2','19nm58993eJ747845fk78A2z7854W90D']} 206.189.56.48
2018-07-20T17:40:36.499Z [info] outgoingMessage: {handshake:[0],ok:'0261e607-d69e-42a4-b80a-4941cce3ce01'} S1N2 0261e607-d69e-42a4-b8$
2018-07-20T17:40:36.499Z [info] handshakeRequest: 'impress' 'login' S1N2 0261e607-d69e-42a4-b80a-4941cce3ce01 206.189.56.48
2018-07-20T17:40:36.521Z [info] incomingMessage: {handshake:[0,'impress'],login:['S1N3','19nm58993eJ747845fk78A2z7854W90D']} 206.189.56.48
2018-07-20T17:40:36.521Z [info] outgoingMessage: {handshake:[0],ok:'aef8fbe2-0f15-4a34-b430-4290ee5c0910'} S1N3 aef8fbe2-0f15-4a34-b4$
2018-07-20T17:40:36.521Z [info] handshakeRequest: 'impress' 'login' S1N3 aef8fbe2-0f15-4a34-b430-4290ee5c0910 206.189.56.48
2018-07-20T17:42:09.680Z [system] Server started
2018-07-20T17:42:09.686Z [system] JSTP listen on 206.189.56.48:250 by Master(26769/S1N0) Cloud Controller
2018-07-20T17:42:11.266Z [info] incomingMessage: {handshake:[0,'impress'],login:['S1N2','19nm58993eJ747845fk78A2z7854W90D']} 206.189.56.48
2018-07-20T17:42:11.268Z [info] outgoingMessage: {handshake:[0],ok:'9034e1fc-7cfd-4781-92b9-4ca94ad04a9b'} S1N2 9034e1fc-7cfd-4781-92$
2018-07-20T17:42:11.268Z [info] handshakeRequest: 'impress' 'login' S1N2 9034e1fc-7cfd-4781-92b9-4ca94ad04a9b 206.189.56.48
2018-07-20T17:42:11.280Z [info] incomingMessage: {handshake:[0,'impress'],login:['S1N1','19nm58993eJ747845fk78A2z7854W90D']} 206.189.56.48
2018-07-20T17:42:11.280Z [info] outgoingMessage: {handshake:[0],ok:'bf1c2818-01ac-4ebe-ad9b-764aca5a610d'} S1N1 bf1c2818-01ac-4ebe-ad$
2018-07-20T17:42:11.280Z [info] handshakeRequest: 'impress' 'login' S1N1 bf1c2818-01ac-4ebe-ad9b-764aca5a610d 206.189.56.48
2018-07-20T17:42:11.333Z [info] incomingMessage: {handshake:[0,'impress'],login:['S1N3','19nm58993eJ747845fk78A2z7854W90D']} 206.189.56.48
2018-07-20T17:42:11.333Z [info] outgoingMessage: {handshake:[0],ok:'8348fccb-7c2b-4a8f-8317-55e6982ded94'} S1N3 8348fccb-7c2b-4a8f-83$
2018-07-20T17:42:11.333Z [info] handshakeRequest: 'impress' 'login' S1N3 8348fccb-7c2b-4a8f-8317-55e6982ded94 206.189.56.48
2018-07-20T17:42:26.702Z [system] Server started
2018-07-20T17:42:26.707Z [system] JSTP listen on 206.189.56.48:250 by Master(26893/S1N0) Cloud Controller
2018-07-20T17:42:26.805Z [error] Can't bind to host/port 206.189.56.48:250
2018-07-20T17:42:26.805Z [system] Crashed
2018-07-20T17:43:18.259Z [system] Server started
2018-07-20T17:43:18.264Z [system] JSTP listen on 206.189.56.48:250 by Master(26943/S1N0) Cloud Controller
2018-07-20T17:43:18.352Z [error] Can't bind to host/port 206.189.56.48:250
2018-07-20T17:43:18.352Z [system] Crashed
2018-07-20T17:44:44.962Z [system] Server started
2018-07-20T17:44:44.968Z [system] JSTP listen on 206.189.56.48:250 by Master(27083/S1N0) Cloud Controller
2018-07-20T17:44:45.059Z [error] Can't bind to host/port 206.189.56.48:250
2018-07-20T17:44:45.060Z [system] Crashed
2018-07-20T17:47:09.738Z [system] 42008576 27602944 18167488
2018-07-20T17:47:09.774Z [system] 96152 299462656 3 1 6371100 23100 3213300 948975400 0 0.0029296875 $
2018-07-20T17:52:09.740Z [system] 42037248 27602944 18256208
2018-07-20T17:52:09.774Z [system] 96452 311922688 3 1 6379200 23100 3218500 951951800 0 0.0029296875 $
2018-07-20T17:57:09.742Z [system] 42037248 27602944 18337120
2018-07-20T17:57:09.775Z [system] 96752 291651584 3 1 6414400 23100 3230100 954892700 0 0.02587890625$
2018-07-20T18:02:09.745Z [system] 42037248 27602944 18417704
2018-07-20T18:02:09.775Z [system] 97052 297390080 3 1 6419400 23100 3234000 957873200 0 0.0029296875 $
2018-07-20T18:07:09.746Z [system] 42037248 27602944 18498264
2018-07-20T18:07:09.775Z [system] 97352 295714816 3 1 6422600 23100 3236100 960858000 0 0.0029296875 $

@vkukh
Copy link
Author

vkukh commented Jul 22, 2018

I installed three times:

  1. npm install impress
  2. uploaded and launched deploy/centos7x64.sh (can't be launched)
  3. npm install impress (i got the same error like in first)

@lundibundi
Copy link
Member

And what is the error for the script? (deploy/centos7x64.sh)

If it was something like 'not executable' or 'not found' could you try to sudo chmod +x centos7x64.sh and then sudo centos7x64.sh assuming you are in the same directory where you downloaded the script.

@vkukh
Copy link
Author

vkukh commented Jul 22, 2018

I'm sorry. I don't remember. I can do this from scratch one more time if you give me advice in which way it would be more preferable. Thank you!

P.S. File centos7x64.sh was executable

@lundibundi
Copy link
Member

lundibundi commented Jul 22, 2018

Well, then just try to run sudo ./centos7x64.sh (or just ./centos7x64.sh if you are root) on a clean system (I'm assuming you are installing Impress globally for this use case Installation scripts for an empty server (from the scratch) ). That should do it, no need for npm install or anything, the script should do it by itself. If it fails then just paste the log here.

@vkukh
Copy link
Author

vkukh commented Jul 22, 2018

Ok. Thank you!

@vkukh
Copy link
Author

vkukh commented Jul 22, 2018

I have installed with an approach: "sudo ./centos7x64.sh"

  1. After I launched "sudo impress start":

Impress Application Server 0.6.2

fs.js:141
throw new ERR_INVALID_CALLBACK();
^

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
at makeCallback (fs.js:141:11)
at Object.unlink (fs.js:912:14)
at finalize (/usr/lib/node_modules/impress-cli/cli.js:182:10)
at cp.exec (/usr/lib/node_modules/impress-cli/cli.js:176:11)
at ChildProcess.exithandler (child_process.js:282:7)
at ChildProcess.emit (events.js:182:13)
at maybeClose (internal/child_process.js:961:16)
at Socket.stream.socket.on (internal/child_process.js:380:11)
at Socket.emit (events.js:182:13)
at Pipe._handle.close (net.js:599:12)

  1. "sudo systemctl start impress"

-- Logs begin at Вск 2018-07-22 21:39:29 EEST, end at Вск 2018-07-22 22:43:41 EEST. --
Июл 22 22:39:41 webgopro systemd[1]: Starting Impress Application Server...
Июл 22 22:39:42 webgopro sh[27154]: Impress Application Server 0.6.2
Июл 22 22:39:44 webgopro sh[27154]: fs.js:141
Июл 22 22:39:44 webgopro sh[27154]: throw new ERR_INVALID_CALLBACK();
Июл 22 22:39:44 webgopro sh[27154]: ^
Июл 22 22:39:44 webgopro sh[27154]: TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
Июл 22 22:39:44 webgopro sh[27154]: at makeCallback (fs.js:141:11)
Июл 22 22:39:44 webgopro sh[27154]: at Object.unlink (fs.js:912:14)
Июл 22 22:39:44 webgopro sh[27154]: at finalize (/usr/lib/node_modules/impress-cli/cli.js:182:10)
Июл 22 22:39:44 webgopro sh[27154]: at cp.exec (/usr/lib/node_modules/impress-cli/cli.js:176:11)
Июл 22 22:39:44 webgopro sh[27154]: at ChildProcess.exithandler (child_process.js:282:7)
Июл 22 22:39:44 webgopro sh[27154]: at ChildProcess.emit (events.js:182:13)
Июл 22 22:39:44 webgopro sh[27154]: at maybeClose (internal/child_process.js:961:16)
Июл 22 22:39:44 webgopro sh[27154]: at Socket.stream.socket.on (internal/child_process.js:380:11)
Июл 22 22:39:44 webgopro sh[27154]: at Socket.emit (events.js:182:13)
Июл 22 22:39:44 webgopro sh[27154]: at Pipe._handle.close (net.js:599:12)
Июл 22 22:39:44 webgopro systemd[1]: impress.service: control process exited, code=exited status=1
Июл 22 22:41:14 webgopro systemd[1]: impress.service stop-final-sigterm timed out. Killing.
Июл 22 22:41:14 webgopro systemd[1]: Failed to start Impress Application Server.
Июл 22 22:41:14 webgopro systemd[1]: Unit impress.service entered failed state.
Июл 22 22:41:14 webgopro systemd[1]: impress.service failed.

P.S. When I have installed first time was the same error. Server is working now :-)

@lundibundi
Copy link
Member

lundibundi commented Jul 22, 2018

Thanks, that's a bug in Impress. We will fix it and get a new version available soon.

For anyone interested: https://github.com/metarhia/impress-cli/blob/master/cli.js#L182 in fs.unlink callback parameter is no longer optional since node 10.
I'll submit a PR later if no one does this before me.
Also we should probably scan impress/impress-cli for such usages as it may not be the only one.

@vkukh
Copy link
Author

vkukh commented Jul 22, 2018

Thank you for this product ;-) I will be waiting for update.

belochub added a commit to metarhia/impress-cli that referenced this issue Jul 25, 2018
Starting with Node.js v10.0.0 `callback` argument in `fs.unlink()` is
no longer optional.

Refs: metarhia/impress#852
belochub added a commit to metarhia/impress-cli that referenced this issue Jul 25, 2018
Starting with Node.js v10.0.0 `callback` argument in `fs.unlink()` is
no longer optional.

Refs: metarhia/impress#852
PR-URL: #35
tshemsedinov pushed a commit that referenced this issue Jul 28, 2018
As per this nodejs/node#12562 node PR callback
in async fs functions is no longer optional. This commit fixes
remaining usages in impress.

Refs: #852
PR-URL: #856
This was referenced Jul 28, 2018
@tshemsedinov
Copy link
Member

impress and impress-cli are published to npm

@belochub
Copy link
Member

belochub commented Aug 2, 2018

@newGermes have you tried installing the new version of impress? Does this problem still occur?

@vkukh
Copy link
Author

vkukh commented Aug 2, 2018

@belochub no, not yet. I might as well get this over with... tonight. I'll report you.

@vkukh
Copy link
Author

vkukh commented Aug 2, 2018

@belochub result is

  1. sudo impress start
    Impress Application Server 0.6.3

  2. sudo impress status
    Impress Application Server 0.6.3
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 29771 7.8 9.0 1144500 92376 pts/0 Sl 14:46 0:02 impress srv
    root 29791 7.8 9.8 1210000 99844 pts/0 Sl 14:46 0:02 impress S1N1
    root 29792 7.1 9.8 1210012 99792 pts/0 Sl 14:46 0:01 impress S1N2
    root 29797 7.0 9.8 1210140 100356 pts/0 Sl 14:46 0:01 impress S1N3

Stopped

  1. ps aux | grep impress
    root 29771 0.5 9.1 1144500 92572 pts/0 Sl 14:46 0:02 impress srv
    root 29791 0.5 9.1 1210512 92904 pts/0 Sl 14:46 0:02 impress S1N1
    root 29792 0.4 9.0 1210524 92092 pts/0 Sl 14:46 0:02 impress S1N2
    root 29797 0.4 9.0 1210140 92344 pts/0 Sl 14:46 0:02 impress S1N3

  2. sudo systemctl status impress
    ● impress.service - Impress Application Server
    Loaded: loaded (/etc/systemd/system/impress.service; enabled; vendor preset: disabled)
    Active: inactive (dead)

P.S. The IAS is running.


Then I tried:

  1. sudo systemctl start impress

  2. sudo systemctl status impress
    ● impress.service - Impress Application Server
    Loaded: loaded (/etc/systemd/system/impress.service; enabled; vendor preset: disabled)
    Active: active (running) since чт 2018-08-02 15:11:32 EEST; 6s ago
    Process: 31464 ExecStop=/bin/sh -c impress stop (code=exited, status=0/SUCCESS)
    Process: 31505 ExecStart=/bin/sh -c impress start (code=exited, status=0/SUCCESS)
    Main PID: 31512 (impress srv)
    CGroup: /system.slice/impress.service
    ├─31512 impress srv
    ├─31530 impress S1N1
    ├─31541 impress S1N2
    └─31551 impress S1N3

сер 02 15:11:24 webgopro systemd[1]: Starting Impress Application Server...
сер 02 15:11:26 webgopro sh[31505]: Impress Application Server 0.6.3
сер 02 15:11:32 webgopro systemd[1]: Started Impress Application Server.

P.S. As I understand, I can control the launch and behavior IAS through SystemD commands?

@lundibundi
Copy link
Member

@newGermes In the first part how did you stop impress (systemctl stop impress?)? Do you mean that it's still running after you have stopped the service?

P.S. As I understand, I can control the launch and behavior IAS through SystemD commands?

Yes you should be able to as impress adds appropriate .service file.

@vkukh
Copy link
Author

vkukh commented Aug 5, 2018

@lundibundi I have three variant how to launch, stop or get status of IAS process (all with 'sudo'):

  1. impress start
    impress status
    impress stop

  2. systemctl start ipmpress
    systemctl status impress
    systemctl stop impress

  3. nohup node server.js &
    ps aux grep | grep node
    kill PID

Result:

  1. I can start and stop with "impress start" and "impress stop", but "impress status" gave me "stopped", when the server is running.

  2. With Systemd all clear. "systemctl status impress" gave me, that server is running.

P.S. As I understood if I run "impress.service", "impress start" run too, but if I run "impress start", "impress.service" dosen't run as well

@lundibundi
Copy link
Member

I can start and stop with "impress start" and "impress stop", but "impress status" gave me "stopped", when the server is running.

This may be a bug, should be investigated further

P.S. As I understood if I run "impress.service", "impress start" run too, but if I run "impress start", "impress.service" doesn't run as well

That's true, you will only get systemd service if you start it from systemctl, otherwise, systemd doesn't know about it. Also systemctl start impress basically runs impress start so that's a given.

@lundibundi
Copy link
Member

Also, do any of the stop commands not stop the impress from running like you reported here?

@vkukh
Copy link
Author

vkukh commented Aug 5, 2018

@lundibundi No, in that case, the problem was only with status.

@lundibundi
Copy link
Member

Ok then, I'll open a new issue for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants