标签: systemctl

systemctl奇怪的错误:无效的参数

这是我的服务文件:

[Unit]
Description=Daphne Interface

[Service]
ExecStartPre=cd /home/git/hsfzmun/server
ExecStart=/bin/bash/ -c "cd /home/git/hsfzmun/server && /home/git/virtualenvs/hsfzmun/bin/daphne -b 0.0.0.0 -p 8001 -v2 config.asgi:channel_layer"
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

当我执行时,sudo systemctl start daphnei我得到:

Failed to start daphnei.service: Unit daphnei.service is not loaded properly: Invalid argument.
See system logs and 'systemctl status daphnei.service' for details.
Run Code Online (Sandbox Code Playgroud)

和的结果systemctl status daphnei.service

* daphnei.service - Daphne Interface
   Loaded: error (Reason: Invalid argument)
   Active: inactive (dead) (Result: exit-code) since Mon 2017-02-13 19:55:10 CST; 13min ago
 Main …
Run Code Online (Sandbox Code Playgroud)

django ubuntu systemctl daphne

4
推荐指数
2
解决办法
1万
查看次数

如何将环境变量传递给systemd启动的服务

我有一个使用NodeJs构建的nodeJS服务.此服务需要将一些环境变量传递给它.此外,我创建了一个systemd单元文件,从systemctl启动它.出于某些奇怪的原因,当使用systemctl启动时,该服务不会读取环境变量.例如,一个环境变量是HOST,其中包含将要绑定sails应用程序的IP.但是,如果我使用sails lift节点app.js启动服务,它会读取环境变量.这是单位文件:

[Unit]
Description=project

[Service]
ExecStart=/usr/bin/node /mnt/project/app.js
Restart=always
StandardOutput=syslog

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

我尝试了一切.我将环境变量添加到/ etc/environment并将单元文件指向它,我还将它们添加到单元文件中,但没有任何效果.

ubuntu environment-variables systemd systemctl

4
推荐指数
1
解决办法
9890
查看次数

如何从 systemctl status 的输出中获取单个值

[root@localhost etc]# systemctl status blu_av
? blu_av.service - avscan
   Loaded: loaded (/etc/systemd/system/blu_av.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2018-03-16 16:31:14 IST; 3s ago
 Main PID: 31934 (av)
   CGroup: /system.slice/blu_av.service
           ??31934 /opt/services/av
           ??31956 /opt/services/av

Mar 16 16:31:14 localhost.localdomain systemd[1]: Started avscan.
Mar 16 16:31:14 localhost.localdomain systemd[1]: Starting avscan...
Run Code Online (Sandbox Code Playgroud)

如果以上是我状态的输出。我想使用 python 脚本检索服务名称、正常运行时间和状态。

python systemctl

4
推荐指数
3
解决办法
5332
查看次数

在Ubuntu上作为systemctl服务运行时Go找不到文件

我有一个Go应用,正在尝试将其作为systemctl服务运行(Ubuntu 18.04)。

我正在使用godotenv

func init() {
    var env map[string]string
    env, err := godotenv.Read()
    if err != nil {
        panic(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

我的.env文件位于可执行文件所在的目录中。

我创建了一个service文件:

[Unit]
Description=my go app
Requires=local-fs.target
After=rsyslog.service

[Service]
Type=forking
GuessMainPID=no
StandardInput=null
ExecStart=/var/path/to/my/app/main

[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)

执行完sudo systemctl start my-go-app.service之后sudo systemctl status my-go-app.service,我将这些记录在日志中:

正在启动我的应用程序...
恐慌:打开.env:没有此类文件或目录

怎么了?

main直接执行时,不存在此类问题。

go systemctl

3
推荐指数
1
解决办法
133
查看次数

显示服务信息后,Exit 命令无法退出 bash shell?

如此简单的 bash 脚本仅包含两行。

cat show.sh
systemctl status cron
exit  0 
Run Code Online (Sandbox Code Playgroud)

在终端中使用 root 执行它。

bash  show.sh
Run Code Online (Sandbox Code Playgroud)

有关 cron.service 的所有信息都显示在终端上。

cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: ena
   Active: active (running) since Sat 2019-08-10 06:51:18 EDT; 13h ago
     Docs: man:cron(8)
Run Code Online (Sandbox Code Playgroud)

为什么show.sh不是退出状态,添加一个点击q会退出show.sh,为什么exit 0不执行?如何触发?
我的期望:在终端上显示有关 cron.service 的信息并退出 show.sh 脚本。
我的 show.sh 完成了一半,只需在终端上显示有关 cron.service 的信息。
一个很长的脚本自动化一个工作是很有意义的,上面两行是显示整个脚本状态的最后一步。

bash exit systemctl

3
推荐指数
1
解决办法
2628
查看次数

单元服务未正确加载:Exec 格式错误。在ubuntu18.04上创建.net服务

我正在尝试创建一个由 .net 应用程序在 ubuntu 18.04 上运行的服务。

cd /lib/systemd/system/YellowPages.service

[Unit]
Description = Yellow pages .NET service

[Service]
Type=forking
WorkingDirectory=/home/yp_app
ExecStart=dotnet /home/yp_app/YellowPages.dll

[Install]
WantedBy=multi-user.target
~
Run Code Online (Sandbox Code Playgroud)

我的申请位于/home/yp_app。

当我运行:systemd start YellowPages.service 我得到多余的参数。

所以我尝试使用: systemctl start YellowPages.service 我得到

 Failed to start YellowPages.service: Unit YellowPages.service is not loaded properly: Exec format error.
See system logs and 'systemctl status YellowPages.service' for details.
Run Code Online (Sandbox Code Playgroud)

当我查看 cat /var/log/syslog 时

我能看见

systemd[1]: /lib/systemd/system/YellowPages.service:7: Executable path is not 
absolute: dotnet /home/yp_app/YellowPages.dll
Run Code Online (Sandbox Code Playgroud)

我是 Linux 新手,我想知道我哪里错了。有人能帮我解决这个问题吗?

ubuntu service systemd systemctl ubuntu-18.04

3
推荐指数
1
解决办法
7774
查看次数

systemd 找不到 Java

我在 Centos Dist 上遇到了一个奇怪的行为,试图运行用 spring boot 创建的可启动 jar。

如果我从 shell 运行 jar 应用程序,它会完美运行

在此处输入图片说明

使用使用以下配置创建的服务运行应用程序时:

[Unit]
Description=app
After=syslog.target

[Service]
ExecStart=/foo/bar/app.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target
~
Run Code Online (Sandbox Code Playgroud)

我不断收到错误“无法找到 Java”

在此处输入图片说明

我检查了 $PATH 和 $JAVA_HOME 属性,它们设置正确(我认为这不会增加更多信息,因为可启动 jar 可以在没有服务的情况下正常运行)

我做错了什么?解决这个问题已经 3 天了,这让我很生气。

java centos spring-boot systemctl

3
推荐指数
1
解决办法
1373
查看次数

Jenkins 没有在 Ubuntu 中获取已更改的配置文件 (/etc/default/jenkins)

使用:

  • Ubuntu 20.04.2 LTS
  • Java 1.8.0_322
  • 詹金斯2.332.1

我一直在尝试更改 /etc/default/jenkins 文件中的 HTTP 端口或用户。但是,一旦我这样做,这些更改就不会被接受:

sudo service jenkins restart
Run Code Online (Sandbox Code Playgroud)

这里的答案似乎也不起作用: Jenkins更改/etc/default/jenkins不起作用

sudo systemctl edit jenkins
Run Code Online (Sandbox Code Playgroud)

只需打开一个新文件进行编辑

java ubuntu jenkins systemctl

3
推荐指数
1
解决办法
4139
查看次数

systemctl 因未知部分“计时器”而失败

我有一个 systemctl 作业,用于执行 vertica 备份到 s3,我想添加一个每天凌晨 3 点运行的计时器。我尝试使用计时器部分创建一个覆盖文件,但是当我执行守护程序重新加载时,我收到错误“未知部分计时器”,我无法找到问题。

/etc/systemd/system/vertica-backup.service.d/Override.conf

[Timer]
OnCalendar=*-*-* 03:00:00
Unit=vertica-backup.service
Run Code Online (Sandbox Code Playgroud)

/etc/systemd/system/vertica-backup.service:

[Unit]
Description = Vertica Backup Service
After = network.target

[Service]
User= dbadmin
ExecStart= /usr/local/bin/vertica-backup.sh
Run Code Online (Sandbox Code Playgroud)

错误

May 15 15:19:47 ip-10-150-4-42.ec2.internal systemd[1]: [/etc/systemd/system/vertica-backup.service.d/override.conf:1] Unknown section 'Timer'. Ignoring.
May 15 15:19:50 ip-10-150-4-42.ec2.internal systemd[1]: [/etc/systemd/system/vertica-backup.service.d/override.conf:1] Unknown section 'Timer'. Ignoring.
Run Code Online (Sandbox Code Playgroud)

rhel systemd systemctl

2
推荐指数
1
解决办法
4989
查看次数

update-rc.d:错误:防火墙默认启动不包含运行级别,正在中止

我正在尝试添加一项服务,以便它在启动时启动,但不可能,我收到以下错误

$ sudo systemctl enable firewall.service

Synchronizing state of firewall.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable firewall
update-rc.d: error: firewall Default-Start contains no runlevels, aborting
Run Code Online (Sandbox Code Playgroud)
# /etc/systemd/system/firewall.service
[Unit]
ConditionPathExists=/etc/init.d/firewall
after=network.target

[Service]
ExecStart=/etc/init.d/firewall

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

linux systemctl

2
推荐指数
1
解决办法
7428
查看次数