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

本文详细介绍了如何在Linux系统中使用systemd管理器配置服务脚本(如ads.service),包括服务的创建、启动、重启及故障解决步骤,同时提供了服务启动失败的排查方法和日志清理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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
        请根据你的需求选择合适的清理策略。请注意,清理日志可能会导致你失去一些旧的日志记录,因此在清理之前确保你不再需要它们来进行故障排除或监控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值