我正在尝试build立一个涉及调用systemctl启动和停止服务的部署pipe道。 我在调用systemctl的服务器上有一个shell脚本,我的构build服务器将通过远程ssh调用shell脚本。 但systemctl需要sudo权限,因此会提示input密码。 有没有办法通过远程SSH调用systemctl,不需要用户交互?
我需要在两台服务器之间同步一个目录,并决定创build一个服务来监听文件中的更改并运行rsync。 /usr/lib/systemd/system/mediasync.service [Unit] Description=SyncCdnImages [Service] #Type=simple ExecStart=/usr/bin/mediasync.sh #Restart=on-abort [Install] WantedBy=multi-user.target /usr/bin/mediasync.sh #!/bin/sh inotifywait -mr -e close_write -e create "/var/www/html/folder/backend/utils/sync.log" | while read line do rsync -avzr –update /var/www/html/cdnimages/* myip:/var/www/html/cdnimages/cdnimages/ done ps aux | grep sync root 25540 0.0 0.0 115244 1424 ? Ss 11:31 0:00 /bin/sh /usr/bin/mediasync.sh root 25541 0.0 0.0 6472 408 ? S […]
我不断收到/var/log/messages : 4/7/2016, 11:03:49 AM fprintd[3277] Launching FprintObject 4/7/2016, 11:03:49 AM fprintd[3277] ** Message: D-Bus service launched with name: net.reactivated.Fprint 4/7/2016, 11:03:49 AM fprintd[3277] ** Message: entering main loop 4/7/2016, 11:04:20 AM fprintd[3277] ** Message: No devices in use, exit 在以下系统上: $ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) $ uname -a Linux X 3.10.0-327.13.1.el7.x86_64 […]
在红帽7我试图强制IP表服务重新启动后自动启动。 目前,每次重新启动后,我需要运行命令: sudo systemctl start iptables 我试过设置 sudo chkconfig iptables on 但它没有运行。 在我设置的文件/etc/sysconfig/iptables-config IPTABLES_SAVE_ON_STOP="yes" IPTABLES_SAVE_ON_RESTART="yes" 有人可以让我知道如何设置这个重新启动?
在Debian 8上,我部署了一个由几个小应用程序组成的应用程序,其中一个小应用程序使用HDF5文件。 HDF5文件的问题是你必须closures它们。 例如,如果你编程的程序片断或你的程序被杀死, HDF5文件被损坏。 根据HDF5文件的大小,closures它可能需要几秒钟的时间。 我有一个工具mondas_ctrl这是我的应用程序的pipe理器,他们的结构在这里并不重要。 login(通过SSH)我可以执行mondas_ctrl start或mondas_ctrl stop没有问题,特别是停止命令知道如何处理HDF5文件(通过添加延迟之间)。 使用旧的SysV,我可以通过改变/etc/inittab上的运行级别6来延迟暂停进程,这是一个自写的脚本,它在执行init 0之前负责照顾HDF5文件。 现在systemd是默认的,我不得不改变我对init.d文件和服务的看法。 所以我写了一个使用我的经理来启动和停止我的应用程序的用户服务: 文件: ~/.config/systemd/user/mondas.service [Unit] Description=Mondas [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/mondas/anaconda/default/bin/mondas_ctrl start ExecRestart=/home/mondas/anaconda/default/bin/mondas_ctrl restart ExecStop=/home/mondas/anaconda/default/bin/mondas_ctrl stop KillMode=none [Install] WantedBy=default.target 起初我对停止命令有点麻烦。 读完这个线程后,我添加了Type , RemainAfterExit和KillMode选项。 这些帮助了很多,现在我可以做到这一点: $ systemctl –user start mondas $ systemctl –user stop mondas $ systemctl –user start mondas 尽可能多的停止命令不会杀死任何东西,我的mondas_ctrlpipe理器停止HDF5应用程序,该文件被closures,并没有被损坏。 但是当我做一个系统范围的重新启动(无论是通过执行reboot或shutdown -r now ), […]
我刚刚在RHEL系统上安装了MariaDB,这是我第一次使用MariaDB。 我只能使用以下命令来启动/停止服务: sudo systemctl start mariadb.service sudo systemctl enable mariadb.service sudo systemctl stop mariadb.service 现在,当我尝试使用以下内容: mysql –user=root 我有以下错误: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 作为一个全新的安装,我希望密码是空白的,我已经卸载并重新安装,希望可以解决这个问题,但显然没有。 我已阅读有关使用–skip授予表来重置根密码,但我一直无法启动该服务的地方,因为我必须使用systemctl。 我不知道是否我可能把这个选项放在命令的错误位置,但是我尝试了很多方法,结果无济于事。 没有其他命令(来自/etc/init.d)可以运行这个服务。 如果任何人都可以帮助我获得–skip-grant-tables的工作,或者找出如何重置mariadb的root密码,或者以某种方式设置另一个拥有所有权限的用户,我将不胜感激。 谢谢。
我正在使用Ubuntu Server 16.04。 这是.service文件: [Unit] Description=NoDescpt [Service] ExecStart=/home/git/cmd/daphnei Restart=always KillSignal=SIGQUIT Type=notify NotifyAccess=all [Install] WantedBy=multi-user.target 和相关的脚本/home/git/cmd/daphnei : #!/bin/bash cd /home/git/hsfzmun/server /home/git/virtualenvs/hsfzmun/bin/daphne -b 0.0.0.0 -p 8001 -v2 config.asgi:channel_layer 我感到困惑的是,服务将每90秒重启一次,但是我找不到原因。 我发现服务的状态总是activating ,这意味着systemd不知道服务已经启动。 然而,脚本确实开始,因为我可以访问我的网站。 那么它有什么问题?
我有一个systemd脚本,如下所示: [Unit] Description=My sites Before=shutdown.target reboot.target halt.target [Service] Type=oneshot ExecStart=/bin/bash -c '/etc/xxx/mySites start' ExecStop=/bin/bash -c '/etc/xxx/mySites stop' KillMode=none SendSIGKILL=no TimeoutStopUSec=5min TimeoutSec=5min TimeoutStopSec=5min [Install] WantedBy=multi-user.target 现在…如果我尝试执行sudo systemctl start mySites.service它似乎服务运行,所有我的东西开始正确。 如果我stop来也行。 然后,在操作系统启动时,它也开始正确。 问题是在操作系统关机。 我正在重新启动它,似乎如果ExecStop WAS调用太…但是太迟了…我在日志中看到,我的进程都收到杀死,因为我可以在我的日志中看到: signal 15, SIGTERM, received from process 1 userId 0 si_code: 0, SI_USER, signal from kill(2), sigsend(2), raise(3C) or abort(3C) si_signo 15 si_errno […]
我已经安装了Xubuntu 15.04,并且马上就被迫深入了解systemd,systemctl,systemd-analysis的细节。 开箱即用,postfix挂在configuration部分的apt-get上。 所以dovecot。 到目前为止,我学到的是systemd是一个先进的服务pipe理系统,能够并行地启动事物,并具有依赖性等function。 我认为,通过apt-get(也包括突触)在安装结束时发生的configuration阶段的原因是服务本身无法启动,因为它正在等待依赖关系。 systemctl list-jobs告诉我dovecot是“开始等待”。 启动意义,它处于启动模式。 而等待意味着它在等待什么。 现在,我遇到的问题是,还在等什么呢? 我可以做像systemd-analyze plot , dot和其他所有的东西,但是没有一个选项或者组合能够告诉我它在等什么。 我可以看到所有依赖的东西,但哪一个是特别不开心的呢? 我不希望手动通过所有的依赖关系? 现在,让我的系统运行的唯一方法是在启动时忍受错误,然后使用systemctl –job-mode=ignore-dependencies start dovecot postfix来手动启动这些服务。 我一直在search,并找不到任何方式给我一个概述,包含所有基于状态的信息,如什么样的服务取决于什么,以及这些都是在什么状态。svg或svg从点转换,是不是告诉我这一点。
我正在努力在我的环境中实现syslog-ng OSE。 最后,我想build立一个中央日志logging服务器,但为了让我的脚湿,我开始一个简单的configuration。 我创build了一个包含单个源,单个目标和单个日志的configuration。 当我执行syslog-ng -F (作为通过cli的前台进程)时,我得到了预期的结果(所有的系统消息都被logging到/ var / log / messages)。 但是,如果我作为守护进程(通过systemctl)运行它,我没有收到所有预期的系统消息。 奇怪的是,我还在接收来自内核设备的消息。 这是我的简单configuration: @version:3.5 @include "scl.conf" source s_sys { system(); internal(); }; destination d_mesg { file("/var/log/messages"); }; log { source(s_sys); destination(d_mesg); }; 正如你所看到的,我没有设置任何filter。 我已经validation,该服务正在通过systemctl status syslog-ng运行,它是。 我已经确定并停止并删除所有其他日志守护进程。 syslog-ng.service – System Logger Daemon Loaded: loaded (/usr/lib/systemd/system/syslog-ng.service; enabled; vendor preset: enabled) Active: active (running) since […]