我正在使用Linux的亚马逊风味
uname -a
Linux mydomain.org 3.19.25-82.99.amzn1.x86_64 #1 SMP Wed Dec 3 21:29:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
我想在系统重启时运行以下脚本......
ls -al /home/davea/install/apache-tomcat-6.0.35/bin/startup.sh
-rwxr-xr-x 1 davea mycompany 2023 Nov 28 2011 /home/davea/install/apache-tomcat-6.0.35/bin/startup.sh
所以我创建了这个文件,
-rwxr-xr-x 1 root root 73 Dec 10 19:29 /etc/init.d/start_tomcat
带有
行#!/bin/sh
sh /home/davea/install/apache-tomcat-6.0.35/bin/startup.sh
但是,当我重启系统时,不会调用此脚本。我遗漏了哪些步骤?我可以在登录时在命令行运行脚本。
编辑:另外,我在/etc/rc.d中创建了这个符号链接...
ls -al /etc/rc.d/start_tomcat
lrwxrwxrwx 1 root root 24 Dec 10 19:29 /etc/rc.d/start_tomcat -> /etc/init.d/start_tomcat
仍然没有运气。
答案 0 :(得分:0)
您必须将init.d
下的启动脚本添加到默认运行级别。
sudo update-rc.d /etc/init.d/start_tomcat defaults
哪个应该在相应的/etc/rc?.d
文件夹下为您的脚本创建符号链接。
答案 1 :(得分:0)
这取决于正在使用的启动程序。假设您有权这样做,并且如果star up程序是chkconfig程序,那么etc / init.d / start脚本必须遵循,因为您需要这样的头字段,如:
# chkconfig: <levels> <start> <stop>
# description: <some description>
对于其他程序,例如systemctl(redhat / fedora),您需要在以下文件夹中创建一个带有指令的文件:
/etc/systemd/system/
您通常使用以下条目创建名为serviceName.service的文件:
[Unit]
Description=MyApp
[Service]
ExecStart=/path/to/myService/executable.sh
[Install]
WantedBy=multi-user.target
然后运行:
sudo systemctl enable /etc/systemd/system/hello.service
sudo systemctl start hello.service
如果这是LSB(基于Linux标准的)OS / Startup,您应该遵循以下教程: