Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

1
systemdと端末起動プログラムの違い
この違いがプログラム間で何であるかについて私は興味があります。systemctlで有効にしたときにsystemdで起動した場合と/etc/rc.local、CLI で起動した場合やCLI で起動した場合。 たとえば、私は最近、ラズベリーパイにshairport-syncを使用していました。最初に、sudo systemctl enabled shairport-syncを使用してshairport-syncを開始するように設定しました。 後で、内部の機能を使用して、shairport-sync接続するデバイスにスクリプトを実行したりポストしたりしました。 驚いたことに、スクリプトが実行されshairport-syncたときkill arecord、aplay しかし、私はスクリプトが実行され、殺された端子を介してスクリプトを実行しますarecordとaplay。 さらに混乱させるために、私shairport-syncはそれを強制終了し、ターミナルを介して起動して、何が起こっているかの出力を確認しました。私はそのようにしたときのスクリプトは、デバイスが接続されて殺されたときに、私は期待通りに機能arecordしてaplay。だから、修正として私は無効shairport-syncにsysmtectlしてで実行するように設定する/etc/rc.localクイックフィックスとして。その後、reboot期待通りに機能しました。 これにより、の一部として実行されるsystemdプログラムと、/etc/rc.localまたはCLIを介して開始されたときに実行されるプログラムには、いくつかの違いがあると私は思います。 なぜこれが起こるのですか?これは、実行レベルが異なるためですか?ダークマジック? デバイスが接続するときに実行されるスクリプトはshairport-sync次のとおりです。shairportstart.sh #!/bin/sh /usr/bin/sudo /bin/pkill arecord if [ $(date +%H) -ge "18" -o $(date +%H) -le "7" ]; then /usr/bin/amixer set Speaker 40% else /usr/bin/amixer set Speaker 100% fi /home/pi/shScripts/shairportfade.sh& exit 0 フェードスクリプトは次のとおりです。 shairportfade.sh #!/bin/sh /usr/bin/amixer set …

1
再圧縮せずにgzipファイルを小さなgzファイルに分割する
大きな.gzファイルがあります。それを100個の小さなgzipファイルに分割し、それぞれを単独で解凍できるようにしたいと思います。言い換えれば、私は.gzファイルをチャンクに細かく分割して解凍できるようにする方法を探していません。小さいファイルをそれぞれ個別に解凍できるようにしたい。 ファイル全体を再圧縮せずに実行できますか? 元のファイルが圧縮されている場合、それは可能--rsyncableですか?(「圧縮データストリームの内部構造を定期的にリセットすることにより、rsyncプログラムよりも優れた機能を提供します。」これらのリセットポイントは、分割してヘッダーを付加するのに適した場所であると思われます。) 他の圧縮形式のいずれかで実行できますか?bzip2ブロックで圧縮されているので、私は実行可能だと想像します。
9 gzip 

3
Solaris 11にインストールした後のGCC-5はどこにありますか?
私の無知を許してください...私は興味のあるC / C ++ライブラリのテストにのみSolarisを使用しています。私はSolaris管理者でもSolarisユーザーでもありません。 GCC-5をSolaris 11.3、x86にインストールしました。これは、サポートするC ++コンパイラが必要だったためです-std=c++11(パッケージの出力については以下を参照してください)。SunのネイティブGCCは4.8であり、C ++ 11を(またはまったく)サポートしていません。 残念ながら、インストール後は見つかりません。 $ g++-5 --version -bash: g++-5: command not found $ sudo find /usr -name gcc-5 $ sudo find /bin -name gcc-5 $ そして完全性のために: $ /bin/gcc --version gcc (GCC) 4.8.2 ... $ ls -l /usr/bin/gcc lrwxrwxrwx 1 root root 18 Jun 7 …

3
PIDが常に変化しているときにプロセスを強制終了する
発行するとき ps aux | grep mtp 私は得る ubuntu- + 15934 0.1 0.0 519848 7068?Sl 21:13 0:00 / usr / lib / gvfs / gvfsd-mtp --spawner:1.9 / org / gtk / gvfs / exec_spaw / 20 したがって、この場合のPIDは15934です。ただし、これが実行されるたびにPIDは異なります。PID以外の方法でプロセスを強制終了する方法はありますか?
9 process  kill 

5
特定のフォルダー内のすべてのgitリポジトリを見つける方法(高速)
素朴なアプローチはですがfind dir1 dir2 dir3 -type d -name .git | xargs -I {} dirname {} 、gitリポジトリ内に多くの深いフォルダ構造があるため、私には遅すぎます(少なくともこれが理由だと思います)。prune何かが見つかると、findがディレクトリに再帰するのを防ぐために使用できることを読みましたが、2つあります。私は確かにどのようにこの作品(私は何を理解していないわけではないよprune、それが妨げられるので、私はmanページを読んだもののん)と第二は、それは私の場合は動作しないでしょうfindに再帰する.gitフォルダすべてではないに他のフォルダ。 だから私が実際に必要なのは: すべてのサブディレクトリについて、それらに.gitフォルダが含まれているかどうかを確認し、フォルダがこのファイルシステムブランチでの検索を停止して結果を報告します。これにより、非表示のディレクトリも検索から除外されれば完璧です。
9 find  git 

1
gnupg 2.1.16ブロックがエントロピーを待っています
リリースのGnuPG 2.1.16から(現在は2.1.17)のエントロピーを待ってブロックするだけで最初の呼び出しで。 注:これは、キーを生成する試みではなく、ファイルを復号化してエージェントを起動するためだけのものです。 初めてgpg-agentを起動すると、直接gpg2 file.gpgまたはのようなアプリケーションを使用してpasspinentryが表示され、パスフレーズを入力してヒットEnterすると、約15秒間ハングします。 default-cache-ttlのウィンドウ内の後続のすべての呼び出しは、すぐに実行されます。 --debug-allモードで実行すると、ハングが発生する期間が出力されます1: gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120 gpg: DBG: chan_6 <- S PROGRESS need_entropy X 120 120 gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120 gpg: DBG: chan_6 <- S PROGRESS need_entropy X 120 120 gpg: DBG: chan_6 …


3
受け入れキューの長さを監視するにはどうすればよいですか?
私の仮説があります。TCP接続が、サーバーが到達できるよりも速く到達することがありaccept()ます。キューがオーバーフローし、問題が発生するまでキューに入れられます。 これが起こっていることをどのように確認できますか? 受け入れキューの長さまたはオーバーフローの数を監視できますか?どこかに露出しているカウンターはありますか?

3
Ubuntu 15.04「Vivid」からアップグレードする方法
Ubuntu 15.04をアップグレードしようとすると: sudo do-release-upgrade エラーメッセージが表示されます。 An upgrade from 'vivid' to 'xenial' is not supported with this tool 私はこの問題のバグレポートも見つけました: https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1609796 しかし、解決策はありません。

1
特定のバージョンのansibleをインストールするにはどうすればよいですか?
Yumまたは別の方法を使用して、Ansibleの特定のバージョンをインストールするにはどうすればよいですか? 私はバージョンをインストールしようとすると2.0を、それは述べていないパッケージ2.0が利用可能。 epelリポジトリを確認しました。rpmは2つしかありませんが、バージョン2.0を含むrpmはありません。なぜ削除されるのですか?2.0など、特定のバージョンのansibleをインストールする方法はありますか?

2
シェルを終了した後、バックグラウンドジョブはどうなりますか?
私の理解では、ジョブは特定のシェルから開始されるパイプラインfgでありbg、これらのジョブ(、、Ctrl-Z)をこのシェル内から管理できます。ジョブは複数のプロセス/コマンドで構成できます。 私の質問は、シェルを含む元のシェルが終了すると、これらのジョブはどうなるのですか?huponexitが設定されていないため、シェルの終了後もバックグラウンドプロセスが実行を続けるとします。 私がやったとしましょう: $ run.sh | grep 'abc' & [1] job_id 次に、このシェルを終了します。新しいシェルを入力して実行するjobsと、何も表示されなくなります。しかし、私はps aux | grep run.shこのプロセスが実行されていることを確認できます。またps aux | grep grep、grep 'abc'実行プロセスも実行して確認できます。 パイプライン全体のジョブIDを取得して、一度に終了できるようにする方法はありますか?または、元のシェルを終了したら、別のシェルとは別にすべてのプロセスを終了する必要がありますか?(私は後者を試しましたが、うまくいきますが、すべてのプロセスを追跡するのは面倒のようです。)
9 shell  process  kill  jobs 

3
スマートバッテリーメモリをクリア/リセットするには?
だから、私は私のラップトップ用の新しいバッテリーを手に入れました、そして最初から、私は問題を抱えています。 バッテリーはほぼ完全にメーカーから排出された。私はそれを自分のコンピューターに接続し、打者は充電率が0であることを報告するため、「完全に充電された」状態には決して到達しません。 数分後、X11がクラッシュした後、次のようになりました(upower -i /org/freedesktop/UPower/devices/battery_BAT0): native-path: BAT0 vendor: Hewlett-Packard model: Primary power supply: yes updated: Fri 21 Oct 2016 08:28:33 AM CEST (106 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: charging warning-level: none energy: 17.8704 Wh energy-empty: 0 Wh energy-full: 24.192 Wh energy-full-design: …

1
nanoで非印刷文字を表示する方法
nanoで改行やタブなどの非印刷文字を表示または切り替える方法はありますか? 最初に、ファイルがプレーンASCIIであると仮定します。
9 nano 

3
sedまたはexを使用して、ブロック(複数行コード)を新しいテキストブロック(コード)に置き換えるにはどうすればよいですか?
ファイル内のテキスト(シェルスクリプトコード)の大きなブロックを別のテキストブロックに置き換える必要があります。 sedを使用して複数行の文字列を置き換えるにはどうすればよいですか?で答え antakとマルチラインを置き換えることで答えブルースEdiger しかし、私はそれらを使用するのにいくつかの問題を抱えています。 antakは既に回答で言及していますが、ファイル全体(1h;2,$H;$!d;g;)をバッファにストリーミングすることは、メモリが過負荷になるため、大きなファイルにはお勧めできません。 sedブロック機能を使用して、ブロック外のテキストを変更せずに保持できることを知っています。この機能を使いたい。でも使ったら sed -i '/marker1/,/marker2/s/.*/new text (code)/' filename ストリームごとに新しいテキスト(コード)を繰り返し挿入します。したがって、視覚的ブロックを1つのストリームとして作成する必要があります。以前のantakによって提案されたものと同様のものを使用しますが、ブロックに対して(ファイル全体ではなく)行います。 Bruce Edigerで述べたように、(ドット)exで始まる追加機能を試すことはできますが、新しいテキスト(コード)にはドットで始まる行が含まれており、追加構文のドットと見なすことができます。この状況でどのように使用できますか?a. ex'のdd行数'は複数の行を削除する可能性がありますが、/ marker1 /と/ marker2 /の間に固定されていない(可変の)行数のブロックがある場合、新しいテキスト(コード)で置き換える場合、方法それ ?
9 sed  ex 

1
sedの〜の解釈
私は最近、sedを学んでいます。何よりも私を混乱させるこのチルダ「〜」があります。 たとえば、コマンド sed -n '1~2 w output.txt' input.txt 奇数番号の行を出力しています(ファイルoutput.txtに)。 同じチュートリアルでは、1から2までの行をスキップし、次に使用する場合に備えて、行番号2の次の行の印刷を開始することも指定されています sed -n '1~2 p' input.txt このチルダの絶対的な解釈は何ですか?
9 sed 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.