centos 7的systemctl

前端之家收集整理的这篇文章主要介绍了centos 7的systemctl前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

ps:
说明:centos 7的systemctl功能感觉越来越多,单独整理一篇文章好了,仅收集资料,自己学习,没有进行学术讨论的水平,见谅。
注意事项目:
1.整篇几乎很少谈到权限问题,所以有异常不妨检查下权限问题。
2.中文路径到底会不会出问题,有时候无法预知的,如非必要尽量不用中文路径,我帮朋友编译了5个软件也仅仅遇到一个异常,显示为编码xxx error。
3.文件名带有下划线,我已经被此问题多次坑过了,windows系统我很喜欢用,而且出现问题,提示都是莫名其妙的,类似于没有参数、未载入之类的,原因我不懂。

一、计划任务

  1. 建立可执行脚本

    vi /home/log-time.sh #保存如下内容:
    #!/bin/bash 
    cd /home&&mkdir logs 
    time_str=$(date +%Y%m%d_%H%M%S)
    echo "$time_str" >> logs/"$time_str".log
  2. 测试脚本是否正常运行

    /home/log-time.sh #执行脚本
    ls /home/logs #结果如下:

    20171115_201312.log

    cat /home/logs/20171115_201312.log #结果如下:

    20171115_201312

  3. 建立服务

    vi /usr/lib/systemd/system/mytest.service #保存如下内容:
    [Unit]
    Description=mytest 
    [Service]
    Type=simple
    ExecStart=/home/log_time.sh
  4. 测试服务是否正常运行

    Systemctl start mytest.service #执行此命令
      cat /home/logs/20171115_201312.log #结果如下

    20171115_20131220171115_201532

  5. 建立定时器

    vi /usr/lib/systemd/system/mytest.timer #保存如下内容:
    [Unit]
    Description=mytest
    [Timer]
    OnCalendar=*-*-* *:*:00 #左往右分别是,年月日 小时分钟秒,当前的设置相当于每分钟执行一次
    Unit=mytest.service
    [Install]
    WantedBy=multi-user.target
  6. 启动设定

    systemctl start mytest.timer #启动定时器 
    systemctl enable mytest.timer #开机启动定时器
    tail -f /home/logs/20171115_201312.log #有兴趣可以看看,结果就不写了

二、自定义开机启动服务之挂载windows共享

  1. 安装硬盘兼容ntfs-3g,建立共享文件夹,根据经验不要使用中文路径,获取uid和gid。

    yum install epel* #官方默认源没有ntfs-3g,必须先安装这个,建议这个源为必装源。
    yum install ntfs-3g #硬盘兼容
    mkdir /home/share #建立共享文件夹,注意权限
    id #获取当前帐号的uid和gid避免文件夹可以挂载但是无法操作,自建帐号好像是1000开始,假如是root帐号,结果如下:

    uid=0(root) gid=0(root) 组=0(root)

  2. 共享脚本

    vi /home/share.sh #保存内容如下:
    #!/bin/bash
    if [ `df | grep share | wc -l` -eq 0 ]; then
    mount -t cifs -o rw,username=win帐号,password=win密码,uid=0,gid=0,file_mode=0777 //ip/共享文件夹/   /home/share   #注意空格,如果空格错误,是无法挂载的也可以手动挂载一次看看命令是否可以成功
    fi
  3. 建立服务

    vi /usr/lib/systemd/system/share.service #保存内容如下:
    [Unit]
    Description=share
    After=network.target #网络共享当然需要网络先通对不?
    #Requires=network.target #根据man描述这个应该靠谱一点,但是实际情况它不行,也许我翻译错了。
    [Service]
    Type=forking #这个地方也纠结了很久,主要是无法配合网络启动,后面发现改成这样就可以了,图形界面最简单,用ide,不过登录要卡
    ExecStart=/home/share.sh
    [Install]
    WantedBy=multi-user.target
  4. 启动设定

    systemctl enable share.service #后面那个.service可输可不输入。
    systemctl start share.service

猜你在找的CentOS相关文章