首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CHDIR生成/opt/Informer5 5/Informer5.sh:没有这样的文件或目录时失败

在CHDIR生成/opt/Informer5 5/Informer5.sh:没有这样的文件或目录时失败
EN

Stack Overflow用户
提问于 2018-09-18 13:16:53
回答 1查看 5.2K关注 0票数 0

我有一份名为“Informer”的申请我正试图把它注册为一项服务,但我不知道我哪里出了问题。

以下是informer.service:

代码语言:javascript
复制
[Unit]
Description=Informer Docker
After=docker.service
Requires=docker.service

[Service]
Type=oneshot
User=root
WorkingDirectory=/opt/Informer5  <===Modify for the appropriate directory
ExecStart=/opt/Informer5/informer5.sh start <===Modify for the appropriate    directory
ExecStop=/opt/Informer5/informer5.sh stop <===Modify for the appropriate directory
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

此文件位于我的/etc/systemd/system文件夹中。我已经启用了这项服务

sudo systemctl enable informer

当我执行

sudo systemctl start informer

我得到的回应是

Job for informer.service failed because the control process exited with error code. See "systemctl status informer.service" and "journalctl -xe" for details.

因此,运行,systemctl status informer.service,我看到以下内容:

代码语言:javascript
复制
$sudo systemctl status informer.service
● informer.service - Informer Docker
   Loaded: loaded (/etc/systemd/system/informer.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-09-18 08:49:07 EDT; 4min 2s ago
  Process: 5780 ExecStart=/opt/Informer5/informer5.sh start <===Modify for the appropriate directory (code=exited, status=200/CHDIR)
 Main PID: 5780 (code=exited, status=200/CHDIR)

Sep 18 08:49:07 informer5 systemd[1]: Starting Informer Docker...
Sep 18 08:49:07 informer5 systemd[1]: informer.service: Main process exited, code=exited, status=200/CHDIR
Sep 18 08:49:07 informer5 systemd[1]: Failed to start Informer Docker.
Sep 18 08:49:07 informer5 systemd[1]: informer.service: Unit entered failed state.
Sep 18 08:49:07 informer5 systemd[1]: informer.service: Failed with result 'exit-code'.

运行$ sudo journalctl -xe,我得到:

代码语言:javascript
复制
    $ sudo journalctl -xe
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit informer.service has failed.
    --
    -- The result is failed.
    Sep 18 08:06:36 informer5 systemd[1]: informer.service: Unit entered failed state.
    Sep 18 08:06:36 informer5 systemd[1]: informer.service: Failed with result 'exit-code'.
    Sep 18 08:06:36 informer5 sudo[5690]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:12:40 informer5 sudo[5712]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/cat /etc/systemd/system/informer.service
    Sep 18 08:12:40 informer5 sudo[5712]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:12:40 informer5 sudo[5712]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:15:01 informer5 CRON[5716]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:15:01 informer5 CRON[5717]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:15:01 informer5 CRON[5716]: pam_unix(cron:session): session closed for user root
    Sep 18 08:17:01 informer5 CRON[5721]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:17:01 informer5 CRON[5722]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
    Sep 18 08:17:01 informer5 CRON[5721]: pam_unix(cron:session): session closed for user root
    Sep 18 08:25:01 informer5 CRON[5732]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:25:01 informer5 CRON[5733]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:25:01 informer5 CRON[5732]: pam_unix(cron:session): session closed for user root
    Sep 18 08:35:01 informer5 CRON[5745]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:35:01 informer5 CRON[5746]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:35:01 informer5 CRON[5745]: pam_unix(cron:session): session closed for user root
    Sep 18 08:45:01 informer5 CRON[5758]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:45:01 informer5 CRON[5759]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:45:01 informer5 CRON[5758]: pam_unix(cron:session): session closed for user root
    Sep 18 08:47:43 informer5 sudo[5774]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/cat /etc/systemd/system/informer.service
    Sep 18 08:47:43 informer5 sudo[5774]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:47:43 informer5 sudo[5774]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:49:07 informer5 sudo[5777]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/systemctl start informer
    Sep 18 08:49:07 informer5 sudo[5777]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:49:07 informer5 systemd[5780]: informer.service: Failed at step CHDIR spawning /opt/Informer5/informer5.sh: No such file or directory
    -- Subject: Process /opt/Informer5/informer5.sh could not be executed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- The process /opt/Informer5/informer5.sh could not be executed and failed.
    --
    -- The error number returned by this process is 2.
    Sep 18 08:49:07 informer5 systemd[1]: Starting Informer Docker...
    -- Subject: Unit informer.service has begun start-up
    -- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit informer.service has begun starting up.
    Sep 18 08:49:07 informer5 systemd[1]: informer.service: Main process exited, code=exited, status=200/CHDIR
    Sep 18 08:49:07 informer5 systemd[1]: Failed to start Informer Docker.
    -- Subject: Unit informer.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit informer.service has failed.
    --
    -- The result is failed.
    Sep 18 08:49:07 informer5 systemd[1]: informer.service: Unit entered failed state.
    Sep 18 08:49:07 informer5 systemd[1]: informer.service: Failed with result 'exit-code'.
    Sep 18 08:49:07 informer5 sudo[5777]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:53:09 informer5 sudo[5787]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/systemctl status informer.service
    Sep 18 08:53:09 informer5 sudo[5787]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:53:09 informer5 systemd[1]: Configuration file /etc/systemd/system/informer.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    Sep 18 08:53:09 informer5 sudo[5787]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:54:01 informer5 sudo[5791]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/journalctl -xe
    Sep 18 08:54:01 informer5 sudo[5791]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)

我认为这里最明显的错误是informer.service: Failed at step CHDIR spawning /opt/Informer5/informer5.sh: No such file or directory

我已经检查了该文件是否存在,并且我可以使用该文件作为root手动启动服务。我在服务文件中设置了主目录。我不知道这个错误是从哪里来的。我使用的是ubuntu16.04,我已经启用了ssh的根登录。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-21 11:29:02

我在顶部的bash文件中添加了#!/bin/bash,它起了作用。

纳米server.sh

代码语言:javascript
复制
#!/bin/bash

echo "Serving Web App!"
serve -s build -p 4004

chmod +x server.sh

nano /etc/systemd/system/web.service

代码语言:javascript
复制
[Unit]
Description=Web App
After=network.target

[Service]
WorkingDirectory=/var/www/html/web
User=root
ExecStart=/var/www/html/web/server.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

要注意的事情

  1. 验证WorkingDirectory,例如cd /var/www/html/web,如果它不存在,创建它,例如cd /var/www/html/web
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52387507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档