目前,我必须达到/usr/java/apache-solr-1.4.0/example,然后做:

java -jar start.jar

如何让它在开机时自动启动?

我在一个共享的Linux服务器上.

推荐答案

如果您拥有对机器的root访问权限,那么可以根据系统的初始化流程(init脚本、systemd等)使用多种方法来实现这一点

但如果你没有root,cron有一个干净一致的方式在重新启动时执行程序.

首先,找出java在您的机器上的位置.下面的命令将告诉您它在哪里:

$ which java

然后,将下面的代码粘贴到shell脚本中,将下面的java路径(/usr/bin)替换为从上述命令获得的路径.

#!/bin/bash

cd /usr/java/apache-solr-1.4.0/example
/usr/bin/java -jar start.jar

您可以将此脚本保存在某个位置(例如,$HOME)作为开始.sh.通过运行以下命令,授予it world execute权限(以简化):

$ chmod og+x start.sh

现在,测试脚本并确保它在命令行中正常工作.

$ ./start.sh

如果一切正常,您需要将其添加到机器的启动脚本中.最简单的方法是在/etc/rc.local的末尾加一行.

# ... snip contents of rc.local ...
# Start Solr upon boot.
/home/somedir/start.sh

或者,如果您没有编辑rc的权限.本地,然后可以将其添加到用户crontab中.首先在命令行中键入以下内容:

$ crontab -e

这将造就一位编辑.添加以下行:

@reboot /home/somedir/start.sh

如果您的Linux系统支持它(它通常支持),这将确保脚本在启动时运行.

如果我上面没有任何拼写错误,你应该会觉得不错.告诉我进展如何.

Linux相关问答推荐

在同一目录中未检测到G++预编译头

如何让xargs对 bash 脚本中find命令找到的所有文件执行?

我可以防止 gcc 优化器延迟内存分配吗?

使用 sed 从文本文件中删除特定字符串

`G++ 4.9.4` 中关于 WEXITSTATUS 的奇怪行为

查找在特定日期从特定机器登录的所有用户

使用 bash 在包含模式的 java 文件中查找行,然后替换该行的另一部分

如何在 AWS Linux 服务器上实现虚拟主机?

是否可以在 XTerm 或 Konsole 中使 stdout 和 stderr 输出具有不同的 colored颜色 ?

Linux 上的 C++ 开发 - 我从哪里开始?

为 django 项目安装 memcached

如何删除 Mercurial 存储库

命令列出除 . (点)和..(点点)

如何仅打印 hexdump 中的十六进制值,而不打印行号或 ASCII 表?

如何链接到 GCC 中特定版本的共享库

Bash:在文件中的特定位置插入一行

如何编写 Mono 守护程序

如何在 Linux 中将 .so 文件添加到 java.library.path

如何在redhat linux上安装maven

如何在 docker 容器中运行 cron 作业(job)