所以最近我注意到我有一个进程会随机崩溃并变成一个 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 ]
不会得到任何输入,因此不会做任何事情。
无论如何我可以修复/修改这个脚本,让它做我想做的事吗?还是我在这里偏离了轨道?
谢谢!
我需要在/usr/share
文件夹中创建一个文件夹来手动将程序放入其中。
如何在/usr/share
文件夹中手动创建文件夹?
我有一个媒体下载文件夹,其中包含各种不相关的文件,例如自述文件、txt 和 torrent 文件以及 mp4、avi、mp3 和其他有效媒体文件。
我想要一个脚本或一组命令,我可以运行以cron
定期通过或其他方式清除它,并遍历所有目录和子目录,删除不需要的文件。
这会起作用吗?
sudo tar -cvpf backboxhome.tar.gz/home/user --lzma
Run Code Online (Sandbox Code Playgroud)
我主要对将--lzma
论点放在哪里感到困惑。
正如 AskUbuntu(多线程)上的详细说明,我正在尝试更改当天的消息。
这是我的编辑:
luis@Terminus:/etc$ cat /etc/motd.tail
____ _ _ ____
/ ___| ___ _ __ __ _| | __ _ (_) ___ / ___| ___ _ ____ ____ _
\___ \ / _ \| '_ \ / _` | |/ _` || |/ _ \ \___ \ / _ \ '__\ \ / / _` |
___) | (_) | |_) | (_| | | (_| || | (_) | ___) | __/ | \ V / (_| …
Run Code Online (Sandbox Code Playgroud) 我使用 github 帐户的密码变体之一包含字符~V
. 当提示输入密码以推送到 Github 时,我输入~V
并输出
~V [LogLevel ERROR]
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
在 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 …
运行时这里似乎很奇怪
service --status-all | grep mysql
Run Code Online (Sandbox Code Playgroud)
为什么我得到这么多错误的结果?
它在我得到的 Centos 上运行良好:
mysql is running xxxxxxx
Run Code Online (Sandbox Code Playgroud)
这就是我在 Ubuntu 上得到的:
我环顾四周,因为我认为这将是一个相当普遍的问题,但似乎没有什么对我有用。
基本上我正在尝试通过 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 进程中运行命令?
谢谢!
提问前,我的提问文章可能有一些不正确的内容。我是 linux 新手和新手开发人员。
我有一个关于 linux tcpdump源代码的问题。据我所知,tcpdump 是使用libpcap实现的。
tcpdump 是如何工作的?我的观点是,因为 tcpdump 二进制可执行文件是在PATH 中设置的。对?
我的主要问题是 tcpdump c 源代码在哪里?我已经知道 tcpdump 库代码可以访问 tcpdump 主页tcpdump
我想看tcpdump真正的c代码,包含main函数,变量头文件。请告诉我地点。
我使用 Ubuntu 16.04 LTS。