标签: systemd

jar文件的系统服务在几分钟后出现"操作超时"错误或保持"激活模式"

服务单位是:

[Unit]
Description=test
After=syslog.target
After=network.target

[Service]
Type=forking
ExecStart=/bin/java -jar /home/ec2-user/test.jar
TimeoutSec=300

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

它开始正常1-4分钟.但后来它失败了:

tail/var/log/messages:

Feb 27 18:43:44 ip-172-31-40-48 systemd: Reloading.
Feb 27 18:44:06 ip-172-31-40-48 systemd: Starting test...
Feb 27 18:44:06 ip-172-31-40-48 java: 5.1.73
Feb 27 18:44:06 ip-172-31-40-48 java: Starting the internal [HTTP/1.1] server on port 8182
Feb 27 18:49:06 ip-172-31-40-48 systemd: test.service operation timed out.Terminating.
Feb 27 18:49:06 ip-172-31-40-48 systemd: test.service: control process exited, code=exited status=143
Feb 27 18:49:06 ip-172-31-40-48 systemd: Failed to start test.
Feb 27 18:49:06 ip-172-31-40-48 …
Run Code Online (Sandbox Code Playgroud)

linux jar systemd

13
推荐指数
1
解决办法
8908
查看次数

如何在systemd命令行参数中使用空格?

我有一个带参数空格的systemd单元

ExecStart=command --argument="text text"
Run Code Online (Sandbox Code Playgroud)

似乎systemd无法识别双引号或单引号,它将参数拆分为两个参数.知道如何防止这种情况吗?我在CoreOS中使用systemd v218.

systemd

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

Ubuntu 16.04使用ulimit系统redis问题

从Ubuntu 14.04交换到16.04后,我的新redis服务器出现了问题.使用所有指南配置打开文件限制说使用以下设置更改/etc/security/limits.conf

*    soft nofile 65535
*    hard nofile 65535
root soft nofile 65535
root hard nofile 65535
Run Code Online (Sandbox Code Playgroud)

并且还要添加到/etc/pam.d/common-session和/etc/pam.d/common-session-noninteractive

session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)

我已经完成了所有这些更改,但redis仍然启动时文件限制为4096,在生产负载下,我们很快达到最大连接数.

ubuntu ulimit redis systemd ubuntu-16.04

13
推荐指数
1
解决办法
7466
查看次数

在Ansible中,服务和systemd模块之间的差异是什么?

在Ansible中,服务和systemd模块之间有什么区别?服务模块似乎包含了systemd模块,那么systemd本身有什么意义呢?

service module systemd ansible

13
推荐指数
1
解决办法
5803
查看次数

Linux:在连接的USB串行加密狗上启动守护程序

在我的Linux(BeagleBone Black上的Angstrom发行版)上,我有一个USB加密狗,它作为一个串口提供,默认情况下可用作 /dev/ttyUSB0

我想启动一个守护进程,它将连接到串行端口并使其可用作套接字.我有这个USB到套接字桥的代码,它可以在手动启动时工作.

我想让它在系统启动时自动启动,假设USB加密狗已插入.我应该怎么做?

到目前为止的尝试:

  1. systemd:我创造了条件systemd服务After: remote-fs.targetAfter:syslog.target,但(似乎)的USB加密狗是不准备在这一点上和守护程序的启动失败.

    是否有其他systemd targetsservices条件,以便只有当udev完成安装设备并且网络准备好后才启动守护进程?

  2. udev:我创建了一个udev规则

    KERNEL =="ttyUSB?",RUN + ="/ path/to/daemon.sh"

    哪个成功执行.但守护进程(在该脚本中以"&"作为后台进程启动)似乎不会执行.从udev规则分叉长时间运行的进程似乎也不赞成.

这样做的正确方法是什么?

linux usb boot udev systemd

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

Nginx登录到stderr

我想重定向nginx访问日志,stdout以便能够通过journalctl(systemd)分析它们.

批准的答案也有同样的问题. 将nginx access_log和error_log日志记录到主进程的STDOUT和STDERR 但它对我不起作用.随着/dev/stderr我得到open() "/dev/stderr" failed (6: No such device or address).随着/dev/stdout我得到没有访问日志journalctl -u nginx.

nginx.conf

daemon off;

http {
    access_log /dev/stdout;
    error_log /dev/stdout;
    ...
}
...
Run Code Online (Sandbox Code Playgroud)

sitename.conf

server {
    server_name sitename.com;
    root /home/username/sitename.com;

    location / {
        proxy_pass http://localhost:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log on;
    }
}
Run Code Online (Sandbox Code Playgroud)

nginx.service

[Service]
Type=forking
PIDFile=/run/nginx.pid
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nginx
ExecStartPre=/usr/sbin/nginx -t -q -g 'master_process on;'
ExecStart=/usr/sbin/nginx -g 'master_process on;'
ExecReload=/usr/sbin/nginx -g …
Run Code Online (Sandbox Code Playgroud)

logging nginx stderr systemd

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

通过python启动systemd服务

有没有办法通过python启动/重启systemd服务?

我知道我可以进行系统调用 - 但是我也可以用shell脚本编写这个...

from subprocess import call
call(["systemctl", "restart service"])
Run Code Online (Sandbox Code Playgroud)

我听说systemd有一些python绑定,但据我所见,它们只覆盖了期刊

python systemd

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

systemd为什么在启动后立即停止服务?

我创建了一个systemd服务,它应该在启动或重启时调用shell脚本.

[Unit]
Description=Starts the DCCA index software

[Install]
WantedBy=multi-user.target

[Service]
ExecStart=/opt/insiteone/bin/indexControl start
ExecStop=/opt/insiteone/bin/indexControl stop

# Execute pre and post scripts as root
#PermissionsStartOnly=true
Restart=on-abort
TimeoutSec=600
Run Code Online (Sandbox Code Playgroud)

最初它一旦启动就继续在无限循环中重新启动,但是当我添加TimeoutSec选项时,它会ExecStop在第一次启动服务时立即调用(启动,然后立即再次停止).

任何线索,我哪里错了?PS:indexControl是一个shell脚本,它启动其他进程.

linux systemd

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

在Systemd中引用其他环境变量

在systemd中设置新的变量时是否可以引用其他环境变量?

[Service]
EnvironmentFile=/etc/environment
Environment=HOSTNAME=$COREOS_PRIVATE_IPV4
Environment=IP=$COREOS_PRIVATE_IPV4
Environment=FELIX_FELIXHOSTNAME=$COREOS_PRIVATE_IPV4
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎不起作用.

systemd

12
推荐指数
1
解决办法
6659
查看次数

在创建新的systemd服务时,何时需要将RemainAfterExit选项设置为true?

我正在尝试写一些服务.他们中的一些人将'type'选项设置为oneshot.但是当选项'RemainAfterExit'需要设置为true时,我仍然感到困惑.(不仅仅是该服务即使在退出后也需要活跃).

linux operating-system systemd

12
推荐指数
3
解决办法
8801
查看次数