无法启动<myapp> .service:找不到单元<myapp> .service


13

我为我的python机器人创建了一个超基本的init.d脚本:

#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....

# Source function library.
. /etc/init.d/functions

start() {
    echo "starting torbot"
    python /home/ctote/dev/slackbots/torbot/torbot.py
    # example: daemon program_name &
}

stop() {
    # code to stop app comes here
    # example: killproc program_name
}

case "$1" in
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
       ;;
    status)
       # code to check status of app comes here
       # example: status program_name
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac

并已torbot.py成为+x#!/usr/local/bin/python在顶部。当我尝试实际启动它时,我得到:

:/var/lock/subsys$ sudo service torbot start Failed to start torbot.service: Unit torbot.service not found.

我想念什么吗?

Answers:



2

对我来说,我正在使用Ubuntu 16.04。

首先更改init函数

. /etc/init.d/functions

. /lib/lsb/init-functions

然后在shell中,创建从/ etc / rc *到我的脚本的符号链接:

sudo update-rc.d <myapp> defaults 95

这里的95是什么意思?
盖尔曼

@Gherman是优先事项
turson

1

好的,我尝试了一些这个stackoverflow答案的步骤(在17.04上运行upstart脚本吗?),它们起作用了。我的环境如下

  1. Ubuntu 17.10
  2. 我在Gunicorn 19.x服务器上有一个python应用程序,我需要将该应用程序作为服务启动。

首先,您需要编写一个foo.service文件。

[Unit] 
Description=FooServer 

[Service] 
Restart=on-failure
WorkingDirectory=/path/to/your/working/directory/where the foo lives
ExecStart=/what/process/will call foo eg: in my case I used gunicorn app:app
ExecReload=/bin/kill -HUP $MAINPID 
KillSignal=SIGINT 

[Install] 
WantedBy=multi-user.target

https://wiki.ubuntu.com/SystemdForUpstartUsers中的“ =”符号左侧的每个单词的含义以及(在较早的版本中)等同的含义

文件准备好后,假设您将其命名为“ foo.service”(。service扩展名很重要)

您需要将文件放入 /lib/systemd/system

之后,您需要通过调用启用服务

systemctl enable foo

这将提示您输入您的root密码,因为它将创建符号链接。

如果您到这里为止都没有任何麻烦,那您就很好。这样就创建了您的服务开始是通过调用

sudo service foo start

systemctl status foo查看状态 sudo service foo stop以停止服务



0

我遇到了同样的问题,这是对我有用的解决方案。尝试:

sudo systemctl守护进程重新加载

sudo systemctl启用daemon_app.service

sudo systemctl启动daemon_app.service

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.