小编hee*_*ayl的帖子

用于查找僵尸进程的 Bash 脚本?

所以最近我注意到我有一个进程会随机崩溃并变成一个 PPID 为 1 (init) 的僵尸。有人告诉我,解决此问题的唯一方法是重新启动 PC(或将 SIGCHLD 发送到 init,据我所知,这是....冒险/无用。)

本质上,我想要做的是编写一个 bash 脚本,该脚本将只查找僵尸进程,如果有,则重新启动 PC。

目前,我使用这个脚本来监控进程本身:

 ps auxw | grep ethminer | grep -v grep > /dev/null

 if [ $? != 0 ]
 then
    sudo reboot
 fi
Run Code Online (Sandbox Code Playgroud)

现在,当 ethminer 正在运行或未运行时,此脚本似乎可以正常工作;如果在进程表中没有看到 ethminer,它将重新启动机器,如果没有看到它,它什么也不做。

然而,(从我公认的松散理解)因为当进程变成僵尸时没有退出代码if [ $? != 0 ]不会得到任何输入,因此不会做任何事情。

无论如何我可以修复/修改这个脚本,让它做我想做的事吗?还是我在这里偏离了轨道?

谢谢!

command-line bash scripts process zombie

3
推荐指数
1
解决办法
5659
查看次数

在 /usr/share 文件夹中创建文件夹

我需要在/usr/share文件夹中创建一个文件夹来手动将程序放入其中。

如何在/usr/share文件夹中手动创建文件夹?

directory

2
推荐指数
1
解决办法
2万
查看次数

清除不需要文件类型的媒体文件夹的命令或脚本

我有一个媒体下载文件夹,其中包含各种不相关的文件,例如自述文件、txt 和 torrent 文件以及 mp4、avi、mp3 和其他有效媒体文件。

我想要一个脚本或一组命令,我可以运行以cron定期通过或其他方式清除它,并遍历所有目录和子目录,删除不需要的文件。

scripts files

2
推荐指数
1
解决办法
1171
查看次数

使用 lzma 备份和压缩 /home 目录

这会起作用吗?

sudo tar -cvpf backboxhome.tar.gz/home/user --lzma
Run Code Online (Sandbox Code Playgroud)

我主要对将--lzma论点放在哪里感到困惑。

command-line compression tar

2
推荐指数
1
解决办法
4792
查看次数

/etc/motd.tail 上的当天消息不起作用

正如 AskUbuntu(多线程)上的详细说明,我正在尝试更改当天的消息

这是我的编辑:

luis@Terminus:/etc$ cat /etc/motd.tail
 ____                    _        _         ____
/ ___|  ___  _ __   __ _| | __ _ (_) ___   / ___|  ___ _ ____   ____ _
\___ \ / _ \| '_ \ / _` | |/ _` || |/ _ \  \___ \ / _ \ '__\ \ / / _` |
 ___) | (_) | |_) | (_| | | (_| || | (_) |  ___) |  __/ |   \ V / (_| …
Run Code Online (Sandbox Code Playgroud)

motd 14.04

2
推荐指数
1
解决办法
4144
查看次数

为什么波浪号 V 输出 ~V [LogLevel ERROR]?

我使用 github 帐户的密码变体之一包含字符~V. 当提示输入密码以推送到 Github 时,我输入~V并输出

~V [LogLevel ERROR]
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

ssh password git

2
推荐指数
1
解决办法
390
查看次数

sudo 组中的用户无法执行 sudo 操作

在 AWS 和 Ansible 1.9 上使用 Ubuntu 14.04 并收到以下权限错误:

$ whoami
>> ubuntu
$ mkdir -p $HOME/.ansible/tmp/testfolder
>> mkdir: cannot create directory ‘/home/ubuntu/.ansible/tmp/testfolder’: Permission denied
$
$ # this works!!
$ sudo mkdir -p $HOME/.ansible/tmp/testfolder
$ # this also works!! (maybe ubuntu doesn't have sudo privileges...)
$ sudo rm -rf $HOME/.ansible/tmp/testfolder
$
$ # ???
$ sudo adduser ubuntu sudo
>> The user `ubuntu' is already a member of `sudo'.
Run Code Online (Sandbox Code Playgroud)

如果ubuntu属于该sudo组,为什么我不能创建该目录而sudo可以?我怎么能真正给予ubuntu特权sudo …

permissions sudo

2
推荐指数
1
解决办法
4195
查看次数

为什么“service --status-all | grep mysql”得到很多不相关的结果?

运行时这里似乎很奇怪

service --status-all | grep mysql
Run Code Online (Sandbox Code Playgroud)

为什么我得到这么多错误的结果?

它在我得到的 Centos 上运行良好:

mysql is running xxxxxxx
Run Code Online (Sandbox Code Playgroud)

这就是我在 Ubuntu 上得到的:

在此处输入图片说明

command-line grep services

2
推荐指数
1
解决办法
1014
查看次数

在新的 bash shell 进程中运行命令

我环顾四周,因为我认为这将是一个相当普遍的问题,但似乎没有什么对我有用。

基本上我正在尝试通过 SSH 连接到设备(Raspberry Pi)来运行一个进程。过程是node ./bin/www。我写了一个publish.sh脚本,在此之前做了一些事情,但是当我运行命令时,ssh user@hostname "cd <my-location>;node ./bin/www它分别在我当前的 bash shell 中启动进程。

我要做的是打开一个新的bash shell 来运行该命令,因为该进程将启动一个 Web 服务器。

我尝试将我的ssh命令包装起来,bash -c 'ssh ...'但它仍然在publish.sh启动脚本的同一个 shell 窗口中运行。我做错了什么吗?我到底需要在我的 shell 脚本中做什么才能在新的 bash shell 进程中运行命令?

谢谢!

ssh bash

2
推荐指数
1
解决办法
2013
查看次数

有没有可能看到tcpdump的真实源代码?

提问前,我的提问文章可能有一些不正确的内容。我是 linux 新手和新手开发人员。

我有一个关于 linux tcpdump源代码的问题。据我所知,tcpdump 是使用libpcap实现的

  1. tcpdump 是如何工作的?我的观点是,因为 tcpdump 二进制可执行文件是在PATH 中设置的对?

  2. 我的主要问题是 tcpdump c 源代码在哪里?我已经知道 tcpdump 库代码可以访问 tcpdump 主页tcpdump

我想看tcpdump真正的c代码,包含main函数,变量头文件。请告诉我地点。

我使用 Ubuntu 16.04 LTS。

apt source-code tcpdump

2
推荐指数
1
解决办法
1230
查看次数