我创建了一个小脚本backup_files.sh并将其放置在/etc/init.d:
#/bin/sh
logfile=/media/verbatim/log
date >> $logfile
rsync -av /home/philipp/Documents /media/verbatim/ >> $logfile
Run Code Online (Sandbox Code Playgroud)
我希望在计算机重新启动或关闭时执行此脚本,因此我执行了以下操作:
sudo ln -s /etc/init.d/backup_files.sh /etc/rc0.d/backup_files.sh
sudo ln -s /etc/init.d/backup_files.sh /etc/rc6.d/backup_files.sh
Run Code Online (Sandbox Code Playgroud)
此外,我使脚本可执行:
sudo chmod +x /etc/init.d/backup_files.sh
Run Code Online (Sandbox Code Playgroud)
我“手动”尝试了脚本,它运行得很好。但是,如果我关闭或重新启动计算机,它显然不会执行。
有没有人看到我做错了什么?
注意:我使用的是 Xubuntu 11.10。
为什么在启动/关闭时运行的程序是用bash脚本编写的?
如果使用编译语言(或更快的解释语言,如 Python),那么它的运行时间会更短。
为什么我必须输入/etc/init.d/apache2 (args)才能运行 apache?
就没有办法apache2 args吗??
所以我试图在启用 systemd 的系统上启动服务。服务名称是ossec-hids-authdossec(入侵检测软件)中的身份验证引擎(代理)。当我去启动 init 脚本然后 systemctl 超时并且在获取状态时我看到这个错误。
/etc/init.d/ossec-hids-authd status
? ossec-hids-authd.service - LSB: Authentication Daemon for OSSEC-HIDS.
Loaded: loaded (/etc/rc.d/init.d/ossec-hids-authd; bad; vendor preset: disabled)
Active: failed (Result: timeout) since Thu 2018-02-22 07:34:28 UTC; 11min ago
Docs: man:systemd-sysv-generator(8)
Feb 22 07:24:11 ip-10-0-197-117.ec2.internal systemd[1]: Starting LSB: Authentication Daemon for OSSEC-HIDS....
Feb 22 07:24:11 ip-10-0-197-117.ec2.internal ossec-hids-authd[21142]: [39B blob data]
Feb 22 07:24:11 ip-10-0-197-117.ec2.internal systemd[1]: PID file /var/run/ossec-authd.pid not readable (yet?) after start.
Feb 22 07:24:11 ip-10-0-197-117.ec2.internal ossec-hids-authd[21142]: 2018/02/22 07:24:11 ossec-authd: INFO: …Run Code Online (Sandbox Code Playgroud) 我有一个脚本/etc/init.d,我试图将echo语句添加到...但我的所有更改似乎都被忽略了。
我猜是因为脚本本身实际上并没有运行,而是systemd在幕后做一些事情来继续运行旧版本的脚本。有没有办法“加载”这些更改?
今年早些时候,我在我的树莓派上安装了 octoprint 来控制我的 3D 打印机。
我已经能够使用 octoprint 让 pi 同时控制 2 台打印机。我还添加了第二个摄像头(USB)来查看第二台打印机。我设法找到一种方法来启动第二个相机并编辑 octoprint 以查看两者之间的差异。
我唯一的问题是每次我再次启动树莓派时我都必须更改为不同的工作目录:
cd ~/mjpg-streamer
Run Code Online (Sandbox Code Playgroud)
然后启动第二个摄像头:
./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"&
Run Code Online (Sandbox Code Playgroud)
我希望能够编写一个脚本来在启动时启动相机,这样我就不必每天通过 ssh 到我的树莓派、登录并发送命令。我发现了很多有关编写启动脚本的信息,但没有发现有关更改其中的工作目录的信息。
我一直用它来编写启动脚本(不成功):
sudo nano /etc/init.d/startsecondcamera
Run Code Online (Sandbox Code Playgroud) 使用 Debian 9 stable,我想在启动 NGINX 进程和 shorewall 防火墙之前启动自定义 shell 脚本:
\n\n/etcNGINX 配置、shorewall 配置和/etc/hostssync,不确定这是否是个好主意\nsystemctl 列表依赖项
\n default.target
\n \xe2\x97\x8f \xe2\x94\x9c\xe2\x94\x80display-manager.service
\n \xe2\x97\x8f \xe2\x94\x9c\xe2\ x94\x80systemd-update-utmp-runlevel.service
\n\xe2\x97\x8f\xe2\x94\x94\xe2\x94\x80multi-user.target
\n\xe2\x97\x8f\xe2\x94\x9c\ xe2\x94\x80console-setup.service
\n\xe2\x97\x8f\xe2\x94\x9c\xe2\x94\x80cron.service
\n\xe2\x97\x8f\xe2\x94\x9c\xe2\x94\ x80dbus.service
\n \xe2\x97\x8f \xe2\x94\x9c\xe2\x94\x80dropbear.service
\n \xe2\x97\x8f \xe2\x94\x9c\xe2\x94\x80myservice.service\xe2\ x80\x82\xe2\x80\x82\xe2\x80\x82<-- 我的服务(使用 systemctl 启用创建的链接)
\n \xe2\x97\x8f \xe2\x94\x9c\xe2\x94\x80networking.service
\ n \xe2\x97\x8f \xe2\x94\x9c\xe2\x94\x80nginx.service\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\ x82\xe2\x80\x82\xe2\x80\x82<-- 在 myservice 之后执行
\n [...]
\n \xe2\x97\x8f \xe2\x94\x9c\xe2\x94\x80basic.target
\n \xe2\x97\x8f \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80-.mount
\n \xe2\x97\x8f \xe2\x94\x82 \xe2\x94\x9c\ xe2\x94\x80myservice.service\xe2\x80\x82<-- …
想添加命令
sudo mount -t vboxsf H_DRIVE /media/windows7share
Run Code Online (Sandbox Code Playgroud)
到/etc/init.d/rc.local文件,每次系统启动时运行命令,但我rc.local在该文件夹中没有这样的文件 ( )。解决方法是什么?
init-script ×8
systemd ×3
sysvinit ×2
ubuntu ×2
apache-httpd ×1
boot ×1
camera ×1
cd-command ×1
debian ×1
debugging ×1
fedora ×1
linux ×1
nginx ×1
raspberry-pi ×1
services ×1