这是我的服务文件:
[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) 我有一个使用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并将单元文件指向它,我还将它们添加到单元文件中,但没有任何效果.
[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 脚本检索服务名称、正常运行时间和状态。
我有一个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直接执行时,不存在此类问题。
如此简单的 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 的信息。
一个很长的脚本自动化一个工作是很有意义的,上面两行是显示整个脚本状态的最后一步。
我正在尝试创建一个由 .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 新手,我想知道我哪里错了。有人能帮我解决这个问题吗?
我在 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 天了,这让我很生气。
使用:
我一直在尝试更改 /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)
只需打开一个新文件进行编辑
我有一个 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) 我正在尝试添加一项服务,以便它在启动时启动,但不可能,我收到以下错误
$ 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)