我们正在用Ubuntu 16.04取代Ubuntu 8.04服务器。 服务器运行我们需要的单个(非OS)服务。 (我是该服务的开发人员,而不是系统pipe理员,这周休假)服务脚本看起来像这样: #!/bin/sh # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # … case "$1" in start) umask 002 #… exit $? ;; stop) # … exit $? ;; […]
我试图将MySQL的数据目录移动到一个外部驱动器上的一个odroid(覆盆子般的小型计算机)。 我正在使用Ubuntu 14.04。 我更改了包含/var/lib/mysql所有configuration文件中的path,并移动了我的新驱动器上的所有mysql文件夹。 该服务不再启动,我不知道如何解决这个问题。 这里有所有改变的path: root@odroid-server:/etc# grep -rnw '/etc' -e "/var/lib/mysql" root@odroid-server:/etc# grep -rnw '/etc' -e "/media/md0/mysql" /etc/apparmor.d/abstractions/mysql:12: /media/md0/mysql{,d}/mysql{,d}.sock rw, /etc/apparmor.d/tunables/alias:16:# alias /media/md0/mysql/ -> /home/mysql/, /etc/apparmor.d/usr.sbin.mysqld:49: /media/md0/mysql/ r, /etc/apparmor.d/usr.sbin.mysqld:50: /media/md0/mysql/** rwk, /etc/apparmor.d/usr.sbin.mysqld:53: /media/md0/mysql-files/ r, /etc/apparmor.d/usr.sbin.mysqld:54: /media/md0/mysql-files/** rwk, /etc/apparmor.d/usr.sbin.mysqld:57: /media/md0/mysql-keyring/ r, /etc/apparmor.d/usr.sbin.mysqld:58: /media/md0/mysql-keyring/** rwk, /etc/imscp/imscp.conf:37:DATABASE_DIR = /media/md0/mysql /etc/mysql/mysql.conf.d/mysqld.cnf:36:datadir = /media/md0/mysql /etc/mysql/mysql.conf.d/mysqld.cnf:92:# InnoDB is enabled by […]
当我启动“reboot”或“poweroff”时,systemd正在终止所有进程,但是我需要在停止其他服务之前等待一个特定的应用程序完成。 其实,我想要Virtualbox虚拟机清理关机/ savestate。 使用此服务文件手动执行操作没有问题,但在closures期间 – 进程被终止。 我如何控制它? 我读过文档,但没有find明确的解决scheme,这种依赖。 [Unit] Description=virtualbox vm1 vm control service After=vboxweb-service.service Before=shutdown.target [Service] Type=oneshot ExecStart=/usr/bin/VBoxManage startvm vm1 -type vrdp ExecStop=/usr/bin/VBoxManage controlvm vm1 savestate RemainAfterExit=true
我最近升级了一个系统到openSUSE 13.1。 我们通过xinetd在系统上运行一个定制的服务,并且在启动xinetd启用核心转储之前,在旧的xinetd init脚本中有一行ulimit -c unlimited 。 由于openSUSE 13.1使用systemd,这不再工作。 即使有确认崩溃的内核日志消息, systemd-coredumpctl也不会find任何核心转储。 从bash手动启动服务,然后发送它SIGSEGV确实在我们configuration的目录中创build了一个核心转储。 我如何获得核心转储?
在Debian Jessie的全新安装中,我设置了一个静态IP地址后,DHCP客户端仍处于活动状态。 甚至当续租时,它甚至还原到dhcp ip地址。 第一步:我修改/ etc / network / interfaces: source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.0.8 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.5 第2步:我重新启动networkingsystemctl restart networking.service (没有错误信息) 第3步:检查dhclient是否正在运行: ps x | grep [d]hclient ps x | grep [d]hclient – > dhclient -v […]
我目前正在尝试在Ubuntu 12.04主机上使用LXC运行Arch Linux容器。 Arch Linux最近已经迁移到了systemd ,根据各种地方,作为LXC guest有一些问题。 但是,这些来源中有许多已经过时了,而且我也看到其他各种来源表明可以使用像lxc.autodev或devtmpfs这样的lxc.autodev来运行基于systemd的访客。 因此,我试图找出以下几点: 是否可以在LXC容器内运行基于systemd的guest虚拟机(截至2013年2月)? 有没有人有一个示例模板/configuration文件与“`mkarchroot“使用得到一个运行? 目前使用LXC 0.7.5版本,但如果这是必要的升级不应该是一个问题。
我知道我可以使用net.ifnames=0 biosdevname=0 ,与grub ,禁用可预测的networking接口名称 。 这将第一个接口命名为eth0而不是enp0s3,或其他。 如何在安装时使用kickstart文件指定此项?
我最近升级了几个虚拟主机到debian 8.现在和他们玩,我发现: 仍然有一个/etc/init.d , /etc/rc0.d有很多文件(比如/etc/rc2.d/S04ssh ) 还有一个/etc/systemd/system/sshd.service 我有一个/etc/init.d/apache2脚本,但没有apache2.service文件 尽pipe如此systemd似乎工作。 systemctl start/stop apache2作品和我自己的书面服务文件也起作用。 所以这个问题:这里有什么问题吗? 我升级时错过了一些重要的东西吗? 如果不是的话,这是如何工作的? (systemd到底在做什么?) 更新:我发现这个问题: https : //unix.stackexchange.com/questions/233468/how-does-systemd-use-etc-init-d-scripts这回答了我的问题的大部分。 (这是现在重复的问题吗?) 我还在想什么:jessie没有apache2.service文件吗?
在我的组织中,我们有许多针对不同服务(如ECS和Docker)的简单易用的基础AMI。 由于我们的许多项目涉及到CloudFormation,因此我们使用的是cfn-bootstrap ,它包含几个脚本和一个在启动时运行的服务来安装某些软件包,并为我们执行某些configurationpipe理任务。 在系统启动时,必须执行以下脚本的等效操作: #!/bin/bash # capture stderr only output="$(cfn-init -s $STACK_NAME -r $RESOURCE_NAME –region $REGION >/dev/null)" # if it failed, signal to CloudFormation that it failed and include a reason returncode=$? if [[ $returncode == 0]]; then cfn-signal -e $returncode -r "$output" exit $returncode fi # otherwise, signal success cfn-signal -s 我正在考虑运行这个作为系统的WantedBy=multi-user.target服务运行After=network.target和WantedBy=multi-user.target 。 唯一的问题是,我想我的AMI是灵活的,只有当某个文件存在时才执行。 […]
我正在尝试在Vagrant框上设置systemd服务,在启动之前需要安装Vagrant同步文件夹。 Vagrantfile Vagrant.configure(2) do |config| config.vm.box = "ubuntu/yakkety64" config.vm.synced_folder ".", "/usr/local/src" config.vm.provision "shell", path: "bootstrap/bootstrap" end /etc/systemd/system/my-server.service [Service] ExecStart=/usr/bin/node /usr/local/src/index.js Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=my-server User=ubuntu Group=ubuntu [Unit] Requires=remote-fs.target After=vboxguest.service After=virtualbox-guest-utils.service [Install] WantedBy=remote-fs.target 如果我不启用我的服务器服务,则同步的文件夹已正确安装。 但是,当我尝试启用我的服务器服务时,该服务无法find装入的文件。 如果我然后login到Vagrant框,文件夹没有安装。 这似乎是该服务的尝试从该path加载文件干扰stream浪汉。 那么,在我的服务开始之前,如何等待文件夹被安装? 其他解决scheme有很多种方式,需要人工干预来启动服务,这是不可接受的。