程序buffer.c代码如下: #include<stdio.h> #include<unistd.h> #include<stdlib.h> int main() { int i=0; setvbuf(stdout,NULL,_IONBF,0); while(i++<100){ fprintf(stdout,"\n202006591141.Wang Tengteng"); sleep(2); } return 0; } [1] 编译并执行该程序,并将程序的二进制可执行文件复制到一级目录/opt中 [2] 参考下列代码,创建systemd服务单元buffer.service [unit] Description=system service unit test [Service] ExecStart=/opt/buffer ExecStop=kill $(MAINPID) StandardOutput=append:/var/log/buffer.log [Install] WantedBy=multi-user.target [3] 将单元文件复制到正确的目录中,启动并查看服务的状态。 (提示:给出命令systemctl status、systemctl list-units执行结果中,该服务的状态) [4] 将服务单元设置为开机启动单元。 (提示:要求给出systemctl list-unit-files执行结果中,该服务的状态) [5] 关闭该服务后,将该服务相关的文件从系统中删除 [6]分别使用计划任务管理命令crontab和at调度执行上述程序。 (提示:使用命令crontab -l和命令atq的查询结果验证命令设置的结果
时间: 2024-02-01 20:02:23 浏览: 27
1. 编译并执行该程序,并将程序的二进制可执行文件复制到一级目录/opt中,可以使用以下命令:
```
gcc buffer.c -o buffer
./buffer
sudo cp buffer /opt
```
2. 参考下列代码,创建systemd服务单元buffer.service,可以使用以下命令:
```
sudo nano /etc/systemd/system/buffer.service
```
然后将以下内容复制进去:
```
[Unit]
Description=system service unit test
[Service]
ExecStart=/opt/buffer
ExecStop=kill $(MAINPID)
StandardOutput=append:/var/log/buffer.log
[Install]
WantedBy=multi-user.target
```
保存并退出。
3. 将单元文件复制到正确的目录中,启动并查看服务的状态,可以使用以下命令:
```
sudo systemctl daemon-reload
sudo systemctl start buffer.service
systemctl status buffer.service
```
4. 将服务单元设置为开机启动单元,可以使用以下命令:
```
sudo systemctl enable buffer.service
systemctl list-unit-files | grep buffer.service
```
这个命令将服务单元设置为开机启动单元,并且使用 `systemctl list-unit-files` 命令可以查看所有服务单元的状态,包括该服务单元的状态。
5. 关闭该服务后,将该服务相关的文件从系统中删除,可以使用以下命令:
```
sudo systemctl stop buffer.service
sudo systemctl disable buffer.service
sudo rm /etc/systemd/system/buffer.service
sudo rm /opt/buffer
sudo rm /var/log/buffer.log
```
6. 分别使用计划任务管理命令crontab和at调度执行上述程序,可以使用以下命令:
```
crontab -e
```
然后添加以下内容:
```
* * * * * /opt/buffer
```
这个命令将会在每分钟执行一次 `/opt/buffer` 可执行文件。可以使用以下命令查看当前用户的计划任务:
```
crontab -l
```
要使用at命令,可以使用以下命令:
```
echo "/opt/buffer" | at now + 1 minute
```
这个命令将会在一分钟后执行 `/opt/buffer` 可执行文件。可以使用以下命令查看当前用户的at任务:
```
atq
```