【Ubantu 18.04】配置sh脚本开机启动

一、services服务脚本编写

1、进入服务管理目录,创建service文件
sudo nano /etc/systemd/system/ads.service
例如文件名为:ads.service,文件内容如下:
[Unit]
Description=Ads Service
After=network.target


[Service]
Type=simple
ExecStart=/home/jp/ads/EC-plat.sh
StandardOutput=file:/home/jp/ads/log/output.log
StandardError=file:/home/jp/ads/error/log/output.log
WorkingDirectory=/home/jp/ads
User=jp
Environment=APP_HOME=/home/jp/ads
Environment=CLASSPATH=$APP_HOME:$CLASSPATH
Environment=JAVA_HOME=/home/jp/ads/jdk17


[Install]
WantedBy=multi-user.target

以下是文件各部分的解释:

  1. [Unit] 部分:

    • Description=ads service:描述了服务的简要说明。
    • After=network.target:指定了服务应该在 network.target 启动之后启动,确保网络可用。
  2. [Service] 部分:

    • Type=simple:指定了服务的类型为 simple,表示这是一个基本的、非守护进程式的服务。
    • ExecStart=/home/jp/ads/EC-plat服务启动.sh:指定了服务启动时要执行的脚本的路径,这是你的Java服务脚本。
    • Restart=always:指定了服务在终止后应该自动重新启动,以确保服务持续运行。
    • User=jp:指定了服务应该以 jp 用户的身份运行。
  3. [Install] 部分:

    • WantedBy=multi-user.target:指定了服务应该由 multi-user.target 启动,这是多用户模式的目标。
2、保存并关闭文件。
3、重新加载systemd管理器配置:
sudo systemctl daemon-reload
4、启用自启动服务:
sudo systemctl enable ads
注意:使用你在第 ads.service文件 的服务名称。
5、启动服务:
sudo systemctl start ads
6、Java程序启动脚本将在系统启动时自动运行。你可以使用以下命令来检查服务状态:
sudo systemctl status ads
7、确保服务正在运行,并且没有错误。如果需要停止服务,可以使用以下命令:
sudo systemctl stop ads
8、如果需要重新启动服务,可以使用以下命令:
sudo systemctl restart ads

二、服务启动失败解决方案:

        1、脚本路径是否正确:确保 /home/jp/ads/EC-plat服务启动.sh路径指向有效的脚本文件。你可以使用 ls命令检查文件是否存在,以及使用 chmod命令确保脚本有执行权限。
        2、脚本中的命令是否正确:打开脚本文件,并确保其中的命令和路径都正确。检查是否有任何可能导致问题的错误。
        3、依赖项是否满足:如果脚本依赖于其他文件或程序,请确保这些依赖项已经安装并可用。
        4、查看错误日志:如果脚本在执行过程中产生错误信息,可以查看相关的错误日志来获取更多详细信息。你可以使用 journalctl命令查看系统日志,例如:
journalctl -u ads.service
        这将列出与 ads.service相关的系统日志,包括服务启动过程中的任何错误信息。
一旦你找到了问题的根本原因并解决了它,你就可以尝试重新启动该服务:
sudo systemctl restart ads.service

三、服务日志清理

        journalctl -u ads.service 命令用于查看特定服务的日志。这些日志通常会保留在系统中,以便你随时查看它们,以便故障排除和问题解决。日志不会自动清理,因此它们会随着时间积累。
你可以选择性地清理日志,以释放磁盘空间或保持日志文件的大小在可管理的范围内。清理日志的方法取决于你的需求和系统设置。
以下是一些清理日志的方法:
1、清理指定服务的所有日志(保持日志文件大小1M以内)
sudo journalctl -u ads --vacuum-files=1M
2、按时间清理
   你可以使用 journalctl--vacuum-time选项来清理特定时间范围内的日志。例如,要清理一周前的日志,可以运行:
sudo journalctl --vacuum-time=7d
2、按大小清理:你可以使用 --vacuum-size选项来指定要保留的日志文件的最大大小。例如,要保持日志文件总大小不超过100MB,可以运行:
sudo journalctl --vacuum-size=100M
3、保持特定数量的日志文件:你可以使用 --vacuum-files选项来指定要保留的日志文件的最大数量。例如,要保留最近的10个日志文件,可以运行:
sudo journalctl --vacuum-files=10
        请根据你的需求选择合适的清理策略。请注意,清理日志可能会导致你失去一些旧的日志记录,因此在清理之前确保你不再需要它们来进行故障排除或监控。

你可能感兴趣的:(linux,服务器,开机启动)