AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 886503
Accepted
int_ua
int_ua
Asked: 2017-02-24 05:14:26 +0800 CST2017-02-24 05:14:26 +0800 CST 2017-02-24 05:14:26 +0800 CST

制作一个更改 /dev/null 修改时间的 systemd 服务

  • 772

我的文件按日期排序,以便轻松处理最新文件。我还有一堆日志重定向到/dev/null我的主目录中,我想在最后显示。我试图为此创建一个 systemd 服务,但它不工作:

$ cat /etc/systemd/system/devnull1975.service 
[Unit]
Description=Change /dev/null modification time to 1975
After=display-manager.target

[Service]
Type=oneshot
ExecStart=/usr/bin/touch -c -t 197501010000 /dev/null

[Install]
WantedBy=default.target

如果我手动启动它并且它在重新启动时运行它就可以工作。“显示管理器之后”看起来像是/dev/null已经创建的点,但重新启动后它仍然stat输出当前日期。那么,任何人都可以看到问题所在吗?

systemd
  • 1 1 个回答
  • 1300 Views

1 个回答

  • Voted
  1. Best Answer
    dajavex71
    2017-03-04T16:23:26+08:002017-03-04T16:23:26+08:00

    首先,/dev/null 是一个特殊文件,而不是目录。它的主要目的是处理 stdout 和 stderr 的重定向。当日志被重定向到文件夹时,它们不再存在。

    一些参考资料,这里

    关于主目录中的文件,最好从直接命令切换:/usr/bin/touch -c -t 197501010000 /dev/null

    至

    /usr/local/bin/mynewscript.sh
    

    虽然使用您自己的新文件名。因此,使用您喜欢的编辑器创建新文件,添加以下内容:(相应地更改名称)

    #!/bin/bash
    
    /usr/bin/touch -m -t 197501010000 /home/username/.bzr.log
    /usr/bin/touch -m -t 197501010000 /home/username/.xsessions-errors.old
    /usr/bin/touch -m -t 197501010000 /home/username/.php_history
    /usr/bin/touch -m -t 197501010000 /home/username/.recently-used
    

    在您的文件上设置执行:

    chmod 455 /usr/local/mynewscript.sh
    

    接下来更改您的服务文件:/etc/systemd/system/devnull1975.service

    [Unit]
    Description=Changes modified times on log file locate /home/username/
    After=graphical-session.target
    
    [Service]
    ExecStart=/bin/sh /usr/local/bin/mynewscript.sh
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
    Alias=file-touch.service
    

    使用以下内容验证 .service 文件未发现错误

    systemd-analyze verify /etc/systemd/system/devnull1975.service
    

    有关 systemd 的更多信息,请参阅此链接。

    • 2

相关问题

  • 为什么 Ubuntu 同时使用 systemd 和 init?[关闭]

  • 命令列出启动时启动的服务?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve